What is JBoss Seam 2?
JBoss Seam 2 is a Java EE application framework developed by Red Hat that integrates JavaServer Faces (JSF), Enterprise JavaBeans (EJB), and other Java EE components. A central feature of Seam 2 is its use of the Unified Expression Language (EL) for data binding — Seam evaluates EL expressions in URL path parameters, view identifiers, and page parameters to dynamically look up beans and invoke methods. This EL evaluation engine, intended to simplify development, became the attack surface for CVE-2010-1871: an attacker who could inject arbitrary EL expressions into URL parameters could cause the server to evaluate Java code server-side.
Overview
CVE-2010-1871 is a high-severity Expression Language injection vulnerability (CWE-917, CVSS 8.8) in JBoss Seam 2, as shipped with JBoss Enterprise Application Platform 4.3. The vulnerability allows remote attackers to inject EL expressions via URL parameters, which are evaluated by the Seam framework without sufficient sanitization. When the Java Security Manager is not properly configured — the default state in most JBoss EAP 4.3 deployments — this EL injection enables arbitrary Java code execution on the server. CISA added CVE-2010-1871 to KEV on its inaugural launch date in December 2021, indicating confirmed exploitation of this 2010 vulnerability against legacy JBoss deployments.
Affected Versions
| Product | Vulnerable | Fixed |
|---|---|---|
| JBoss Enterprise Application Platform 4.3.0 for Red Hat Linux | Affected | Apply Red Hat Security Advisory RHSA-2010:0564 |
| JBoss Seam 2 (community) before patched version | Affected | Update to patched Seam 2 release |
Technical Details
The vulnerability exists in how JBoss Seam 2 processes URL path parameters. Seam 2 uses EL expressions extensively for page navigation and action invocation. When processing URL parameters like action or outcome, Seam evaluates the values as EL expressions — for example, #{someBean.method()} would invoke a method on a managed bean.
The flaw is that Seam did not properly restrict what EL expressions could be injected through these URL parameters. An attacker could craft a URL containing EL expressions that:
- Access Java runtime objects through the EL object graph
- Invoke
Runtime.exec()or similar methods to execute OS commands - Read arbitrary files from the server filesystem
- Access database credentials and other application configuration
The critical caveat is that exploitation is blocked if the Java Security Manager is properly configured with restrictive policies. However, the Java Security Manager is complex to configure correctly, and the default JBoss EAP 4.3 deployment did not restrict the EL execution context sufficiently. This meant that any internet-facing JBoss Seam 2 application was vulnerable to remote code execution with default configuration.
Discovery
Discovered through security research into Seam 2's EL evaluation architecture. The vulnerability was reported to Red Hat, which released Security Advisory RHSA-2010:0564 in August 2010. The CWE-917 classification (Improper Neutralization of Special Elements Used in an Expression Language Statement) reflects a vulnerability class that would recur in similar Java EE frameworks — JBoss Seam EL injection attacks were precursors to the more widely publicized Expression Language injection vulnerabilities found in Spring MVC (2011) and Apache Struts (2013 onward).
Exploitation Context
JBoss Seam 2 EL injection attracted sustained exploitation due to the prevalence of legacy JBoss EAP deployments:
- KEV inaugural list: CISA included CVE-2010-1871 in its initial 287-entry KEV launch list on December 10, 2021. Inclusion in that list reflected active exploitation of legacy JBoss installations in 2021 — more than a decade after the patch.
- Internet-facing Java EE applications: Enterprise Java applications built on JBoss Seam 2 were commonly deployed in insurance, healthcare, and government sectors, frequently on internet-facing infrastructure.
- No authentication required: The CVSS 8.8 score includes
userInteraction: Required— which reflects that a browser request triggers the evaluation — but no authentication is needed. Any visitor to a Seam 2 application could potentially exploit this. - Legacy persistence: JBoss EAP 4.3 reached end-of-life in 2012 but remained in production at organizations unable to migrate complex Seam 2 applications to JBoss EAP 6 (which required significant code changes).
- EL injection as a vulnerability class: CVE-2010-1871 demonstrated the dangers of server-side EL evaluation of untrusted input, a lesson that influenced the design of Expression Language 3.0 and similar frameworks.
Remediation
- Apply RHSA-2010:0564: Install the Red Hat Security Advisory update for JBoss EAP 4.3 that patches the Seam 2 EL injection vulnerability.
- Configure Java Security Manager: Even after patching, deploy a properly restrictive Java Security Manager policy to limit the impact of any EL evaluation vulnerability.
- Upgrade JBoss EAP: JBoss EAP 4.3 is end-of-life. Migrate to JBoss EAP 7 (current) or WildFly. JBoss EAP 7 uses Seam 3 / CDI rather than Seam 2.
- Migrate off Seam 2: JBoss Seam 2 is no longer supported. Applications should be migrated to CDI (Contexts and Dependency Injection) and modern Java EE / Jakarta EE frameworks.
- Input validation: Validate and sanitize all URL parameters that are evaluated in any EL context to prevent injection.
- Network access control: Limit access to JBoss EAP management interfaces and application ports to known IP ranges.
Key Details
| Property | Value |
|---|---|
| CVE ID | CVE-2010-1871 |
| Vendor / Product | Red Hat — JBoss Seam 2 |
| NVD Published | 2010-08-05 |
| NVD Last Modified | 2025-10-22 |
| CVSS 3.1 Score | 8.8 |
| CVSS 3.1 Vector | CVSS:3.1/AV:N/AC:L/PR:N/UI:R/S:U/C:H/I:H/A:H |
| Severity | HIGH |
| CWE | CWE-917 find similar ↗ |
| CISA KEV Added | 2021-12-10 |
| CISA KEV Deadline | 2022-06-10 |
| Known Ransomware Use | No |
CVSS 3.1 Breakdown
Required Action
Timeline
| Date | Event |
|---|---|
| 2010-07-12 | Vulnerability reported to Red Hat; JBoss Seam 2 EL injection via URL parameters disclosed |
| 2010-08-05 | CVE-2010-1871 published |
| 2021-12-10 | CISA added to KEV on its inaugural launch date — one of the original 287 KEV entries |
| 2022-06-10 | CISA BOD 22-01 remediation deadline |
References
| Resource | Type |
|---|---|
| NVD — CVE-2010-1871 | Vulnerability Database |
| CISA KEV Catalog Entry | US Government |