CWE-110 Variante Borrador

Struts: Validator Without Form Field

This vulnerability occurs when a Struts application's validation configuration file references form fields that no longer exist in the corresponding ActionForm class. This mismatch indicates…

Definición

What is CWE-110?

This vulnerability occurs when a Struts application's validation configuration file references form fields that no longer exist in the corresponding ActionForm class. This mismatch indicates outdated validation logic that can fail to properly check user input.
This issue commonly arises during maintenance. When a developer modifies an ActionForm by renaming or removing a field but forgets to update the associated validation rules (validator.xml), the validation logic becomes desynchronized. The system may then ignore validation for new or modified fields, potentially allowing malicious or malformed data to pass through. While Java applications themselves are not typically vulnerable to classic buffer overflows, this validation gap becomes critical if the application passes data to native code components (like C/C++ libraries). An attacker could exploit the missing validation to inject unexpected data, potentially triggering a buffer overflow in the native layer and compromising the system.
Impacto en el mundo real

Real-world CVEs caused by CWE-110

Todavía no hay CVEs públicos enlazados a esta CWE en el catálogo de MITRE.

Cómo lo explotan los atacantes

Ruta del atacante paso a paso

  1. 1

    This example shows an inconsistency between an action form and a validation form. with a third field.

  2. 2

    This first block of code shows an action form that has two fields, startDate and endDate.

  3. 3

    This second block of related code shows a validation form with a third field: scale. The presence of the third field suggests that DateRangeForm was modified without taking validation into account.

Ejemplo de código vulnerable

Vulnerable Java

This first block of code shows an action form that has two fields, startDate and endDate.

Vulnerable Java
public class DateRangeForm extends ValidatorForm {
  		String startDate, endDate;
  		public void setStartDate(String startDate) {
  			this.startDate = startDate;
  		}
  		public void setEndDate(String endDate) {
  			this.endDate = endDate;
  		}
  }
Ejemplo de código seguro

Secure pseudo

Seguro pseudo
// Validate, sanitize, or use a safe API before reaching the sink.
function handleRequest(input) {
  const safe = validateAndEscape(input);
  return executeWithGuards(safe);
}
What changed: the unsafe sink is replaced (or the input is validated/escaped) so the same payload no longer triggers the weakness.
Lista de prevención

How to prevent CWE-110

  • Architecture Use safe-by-default frameworks and APIs that prevent the unsafe pattern from being expressible.
  • Implementation Validate input at trust boundaries; use allowlists, not denylists.
  • Implementation Apply the principle of least privilege to credentials, file paths, and runtime permissions.
  • Testing Cover this weakness in CI: SAST rules + targeted unit tests for the data flow.
  • Operation Monitor logs for the runtime signals listed in the next section.
Señales de detección

How to detect CWE-110

Automated Static Analysis Moderate

To find the issue in the implementation, manual checks or automated static analysis could be applied to the XML configuration files.

Manual Static Analysis Moderate

To find the issue in the implementation, manual checks or automated static analysis could be applied to the XML configuration files.

CWE-110

Don't catalog this weakness. Prove it's reachable.

Plexicus turns CWE catalogs into evidence: every CWE-pattern is matched against your real code graph, reach is proven on a sandbox clone, and verified findings ship as reviewed PRs.

Preguntas frecuentes

Frequently asked questions

¿Qué es CWE-110?

This vulnerability occurs when a Struts application's validation configuration file references form fields that no longer exist in the corresponding ActionForm class. This mismatch indicates outdated validation logic that can fail to properly check user input.

¿Qué gravedad tiene CWE-110?

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-110?

MITRE lists the following affected platforms: Java.

¿Cómo puedo prevenir CWE-110?

Use safe-by-default frameworks, validate untrusted input at trust boundaries, and apply the principle of least privilege. Cover the data-flow signature in CI with SAST.

¿Cómo detecta y corrige Plexicus CWE-110?

El motor SAST de Plexicus detecta la firma de flujo de datos para CWE-110 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-110?

MITRE publica la definición canónica en https://cwe.mitre.org/data/definitions/110.html. También puedes consultar la documentación de OWASP y NIST para guías relacionadas.

¿Listo para validar lo que importa?

Listo para validar lo que importa.

Plexicus es Proof-Driven AppSec: hallazgos validados, comprensión contextual y remediación revisada — anclada en evidencia, acotada contigo.

Calificación

Comprueba si el AI Swarm Pentest encaja en tu entorno.

Déjanos el contexto mínimo. Revisaremos el alcance y te indicaremos el siguiente paso comercial.

Antes de enviar — verifica que encajas

0 / 280

Sin compromiso. Si no encajas, te lo decimos.

SAMPLE HANDOVER · ILLUSTRATIVE

Sample evidence handover

A trimmed view of what your team receives at the end of an AI Swarm Pentest engagement. Real engagements include full technical evidence, executive narrative, and a remediation plan.

VALIDATED FINDING Evidence attached

Server-Side Request Forgery in webhooks/receiver

demo-project/sample-app · src/webhooks/receiver.py:42

SeverityHigh CVSS 3.18.6 Priority79 Confirmedvia replay

Untrusted caller-supplied URLs reach an internal egress without an allowlist. Replayed in a sandbox against a fresh authorized target — the same control was validated to fail twice.

REVIEWER-READY REMEDIATION Merge-ready PR

Validate the target URL against an allowlist of permitted hostnames. Reject private/internal IP ranges. Enforce HTTPS only.

plexicus/remediation/webhooks-ssrf 3 changed · 0 new files
42resp = requests.get(target_url)
42+if not is_allowed_host(target_url):
43+  raise WebhookRejected(target_url)
44+resp = requests.get(target_url, timeout=5)
Every engagement hands over:
  • Executive briefing
  • Validated findings list
  • Merge-ready PRs
  • Compliance mapping (NIS2 · DORA · CRA)
Ronda privada Para inversores