Automated static analysis, commonly referred to as Static Application Security Testing (SAST), can find some instances of this weakness by analyzing source code (or binary/compiled code) without having to execute it. Typically, this is done by building a model of data flow and control flow, then searching for potentially-vulnerable patterns that connect "sources" (origins of input) with "sinks" (destinations where the data interacts with external components, a lower layer such as the OS, etc.)
Object Model Violation: Just One of Equals and Hashcode Defined
This vulnerability occurs when a Java class defines either the equals() method or the hashCode() method, but not both, breaking a fundamental contract of object equality.
What is CWE-581?
Real-world CVEs caused by CWE-581
Todavía no hay CVEs públicos enlazados a esta CWE en el catálogo de MITRE.
Ruta del atacante paso a paso
- 1
Identifica una ruta de código que maneje entrada no confiable sin validación.
- 2
Crea un payload que ejercite el comportamiento inseguro — inyección, traversal, overflow o abuso de lógica.
- 3
Envía el payload a través de una solicitud normal y observa la reacción de la aplicación.
- 4
Itera hasta que la respuesta filtre datos, ejecute código del atacante o escale privilegios.
Vulnerable pseudo
MITRE no ha publicado un ejemplo de código para esta CWE. El patrón siguiente es ilustrativo — consulta Recursos para referencias canónicas.
// Example pattern — see MITRE for the canonical references.
function handleRequest(input) {
// Untrusted input flows directly into the sensitive sink.
return executeUnsafe(input);
} Secure pseudo
// Validate, sanitize, or use a safe API before reaching the sink.
function handleRequest(input) {
const safe = validateAndEscape(input);
return executeWithGuards(safe);
} How to prevent CWE-581
- Implementation Both Equals() and Hashcode() should be defined.
How to detect CWE-581
Plexicus detecta automáticamente CWE-581 y abre un PR de corrección en menos de 60 segundos.
Codex Remedium escanea cada commit, identifica esta debilidad concreta y entrega un pull request listo para revisión con el parche. Sin tickets. Sin traspasos.
Frequently asked questions
¿Qué es CWE-581?
This vulnerability occurs when a Java class defines either the equals() method or the hashCode() method, but not both, breaking a fundamental contract of object equality.
¿Qué gravedad tiene CWE-581?
MITRE no ha publicado una calificación de probabilidad de explotación para esta debilidad. Trátala como de impacto medio hasta que tu modelo de amenazas demuestre lo contrario.
¿Qué lenguajes o plataformas se ven afectados por CWE-581?
MITRE lists the following affected platforms: Java.
¿Cómo puedo prevenir CWE-581?
Both Equals() and Hashcode() should be defined.
¿Cómo detecta y corrige Plexicus CWE-581?
El motor SAST de Plexicus detecta la firma de flujo de datos para CWE-581 en cada commit. Cuando hay coincidencia, nuestro agente Codex Remedium abre un PR de corrección con el código corregido, las pruebas y un resumen de una línea para el revisor.
¿Dónde puedo aprender más sobre CWE-581?
MITRE publica la definición canónica en https://cwe.mitre.org/data/definitions/581.html. También puedes consultar la documentación de OWASP y NIST para guías relacionadas.
Weaknesses related to CWE-581
Improper Following of Specification by Caller
This weakness occurs when software fails to properly follow the documented rules, protocols, or requirements of an external component it…
Struts: Incomplete validate() Method Definition
This vulnerability occurs in a Struts application when a validator form either completely omits a validate() method or includes one but…
Struts: Form Bean Does Not Extend Validation Class
This vulnerability occurs in Apache Struts applications when a form bean class does not properly extend the framework's validation class.…
Creation of chroot Jail Without Changing Working Directory
This vulnerability occurs when a program creates a chroot jail but fails to change its current working directory afterward. Because the…
Incorrect Check of Function Return Value
This vulnerability occurs when a program misinterprets or improperly validates the return value from a function, causing it to miss…
Improper Following of a Certificate's Chain of Trust
This vulnerability occurs when software fails to properly validate the entire certificate chain back to a trusted root authority. This…
Missing Critical Step in Authentication
This vulnerability occurs when a software authentication process omits a required step, weakening its overall security.
Missing Cryptographic Step
This vulnerability occurs when a software implementation skips a critical step in a cryptographic process, resulting in security that is…
Generation of Predictable IV with CBC Mode
This vulnerability occurs when software uses a predictable or reused Initialization Vector (IV) with Cipher Block Chaining (CBC) mode…
Deja de pagar por desarrollador.
Empieza a cerrar el bucle.
Plexicus es el ASPM nativo de IA que escanea, filtra, corrige, pentestea y explica — de forma autónoma. Desarrolladores ilimitados, repos ilimitados, acciones de IA de uso justo. Nivel gratuito real, €269/mo anual cuando estés listo.