Critical
Security advisory
The Struts 1 plugin in Apache Struts 2.1.x and 2.3.x might allow remote code execution via a malicious field value passed in a raw message to the ActionMessage.
- Products
- Not specified
- Affected versions
- Not specified
- Fixed versions
- Not specified
- CVEs
- CVE-2017-9791
- Confirmed fixed CVEs
- Not specified
- Updated in this feed
- 1 Nov 2026, 07:57 UTC · Revision 1
Source evidence
The Struts 1 plugin in Apache Struts 2.1.x and 2.3.x might allow remote code execution via a malicious field value passed in a raw message to the ActionMessage.
osv:CVE-2017-9791
Complete source record
{
"id": "648532a5fcb3314b54b9ca5dcb86b1bb7c4501103838ba59d260c7cbc791f565",
"url": "https://osv.dev/vulnerability/CVE-2017-9791",
"method": "structured",
"payload": {
"kind": "advisory",
"title": "CVE-2017-9791",
"summary": "The Struts 1 plugin in Apache Struts 2.1.x and 2.3.x might allow remote code execution via a malicious field value passed in a raw message to the ActionMessage.",
"evidence": "osv:CVE-2017-9791",
"products": [],
"severity": "critical",
"structured": {
"id": "CVE-2017-9791",
"aliases": [
"CVE-2017-9791",
"GHSA-29rm-6752-gvwv"
],
"metrics": [
{
"type": "CVSS_V3",
"score": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H"
}
],
"affected": [
{
"ranges": [
{
"repo": "https://github.com/apache/struts",
"type": "GIT",
"events": [
{
"introduced": "e5009a34202777b53c5dc36e020d0033aa8be027"
},
{
"last_affected": "1ed29d508fc0a3762ad7d16336a71adcf69bd88d"
}
],
"database_specific": {
"extracted_events": [
{
"cpe": "cpe:2.3:a:apache:struts:2.3.1:*:*:*:*:*:*:*",
"range": [
{
"introduced": "2.3.1"
},
{
"last_affected": "2.3.1"
}
],
"source": "CPE_STRING"
},
{
"cpe": "cpe:2.3:a:apache:struts:2.3.1.1:*:*:*:*:*:*:*",
"range": [
{
"introduced": "2.3.1.1"
},
{
"last_affected": "2.3.1.1"
}
],
"source": "CPE_STRING"
},
{
"cpe": "cpe:2.3:a:apache:struts:2.3.1.2:*:*:*:*:*:*:*",
"range": [
{
"introduced": "2.3.1.2"
},
{
"last_affected": "2.3.1.2"
}
],
"source": "CPE_STRING"
},
{
"cpe": "cpe:2.3:a:apache:struts:2.3.3:*:*:*:*:*:*:*",
"range": [
{
"introduced": "2.3.3"
},
{
"last_affected": "2.3.3"
}
],
"source": "CPE_STRING"
},
{
"cpe": "cpe:2.3:a:apache:struts:2.3.4:*:*:*:*:*:*:*",
"range": [
{
"introduced": "2.3.4"
},
{
"last_affected": "2.3.4"
}
],
"source": "CPE_STRING"
},
{
"cpe": "cpe:2.3:a:apache:struts:2.3.4.1:*:*:*:*:*:*:*",
"range": [
{
"introduced": "2.3.4.1"
},
{
"last_affected": "2.3.4.1"
}
],
"source": "CPE_STRING"
},
{
"cpe": "cpe:2.3:a:apache:struts:2.3.7:*:*:*:*:*:*:*",
"range": [
{
"introduced": "2.3.7"
},
{
"last_affected": "2.3.7"
}
],
"source": "CPE_STRING"
},
{
"cpe": "cpe:2.3:a:apache:struts:2.3.8:*:*:*:*:*:*:*",
"range": [
{
"introduced": "2.3.8"
},
{
"last_affected": "2.3.8"
}
],
"source": "CPE_STRING"
},
{
"cpe": "cpe:2.3:a:apache:struts:2.3.12:*:*:*:*:*:*:*",
"range": [
{
"introduced": "2.3.12"
},
{
"last_affected": "2.3.12"
}
],
"source": "CPE_STRING"
},
{
"cpe": "cpe:2.3:a:apache:struts:2.3.14:*:*:*:*:*:*:*",
"range": [
{
"introduced": "2.3.14"
},
{
"last_affected": "2.3.14"
}
],
"source": "CPE_STRING"
},
{
"cpe": "cpe:2.3:a:apache:struts:2.3.14.1:*:*:*:*:*:*:*",
"range": [
{
"introduced": "2.3.14.1"
},
{
"last_affected": "2.3.14.1"
}
],
"source": "CPE_STRING"
},
{
"cpe": "cpe:2.3:a:apache:struts:2.3.14.2:*:*:*:*:*:*:*",
"range": [
{
"introduced": "2.3.14.2"
},
{
"last_affected": "2.3.14.2"
}
],
"source": "CPE_STRING"
},
{
"cpe": "cpe:2.3:a:apache:struts:2.3.14.3:*:*:*:*:*:*:*",
"range": [
{
"introduced": "2.3.14.3"
},
{
"last_affected": "2.3.14.3"
}
],
"source": "CPE_STRING"
},
{
"cpe": "cpe:2.3:a:apache:struts:2.3.15:*:*:*:*:*:*:*",
"range": [
{
"introduced": "2.3.15"
},
{
"last_affected": "2.3.15"
}
],
"source": "CPE_STRING"
},
{
"cpe": "cpe:2.3:a:apache:struts:2.3.15.1:*:*:*:*:*:*:*",
"range": [
{
"introduced": "2.3.15.1"
},
{
"last_affected": "2.3.15.1"
}
],
"source": "CPE_STRING"
},
{
"cpe": "cpe:2.3:a:apache:struts:2.3.15.2:*:*:*:*:*:*:*",
"range": [
{
"introduced": "2.3.15.2"
},
{
"last_affected": "2.3.15.2"
}
],
"source": "CPE_STRING"
},
{
"cpe": "cpe:2.3:a:apache:struts:2.3.15.3:*:*:*:*:*:*:*",
"range": [
{
"introduced": "2.3.15.3"
},
{
"last_affected": "2.3.15.3"
}
],
"source": "CPE_STRING"
},
{
"cpe": "cpe:2.3:a:apache:struts:2.3.16:*:*:*:*:*:*:*",
"range": [
{
"introduced": "2.3.16"
},
{
"last_affected": "2.3.16"
}
],
"source": "CPE_STRING"
},
{
"cpe": "cpe:2.3:a:apache:struts:2.3.16.1:*:*:*:*:*:*:*",
"range": [
{
"introduced": "2.3.16.1"
},
{
"last_affected": "2.3.16.1"
}
],
"source": "CPE_STRING"
},
{
"cpe": "cpe:2.3:a:apache:struts:2.3.16.2:*:*:*:*:*:*:*",
"range": [
{
"introduced": "2.3.16.2"
},
{
"last_affected": "2.3.16.2"
}
],
"source": "CPE_STRING"
},
{
"cpe": "cpe:2.3:a:apache:struts:2.3.16.3:*:*:*:*:*:*:*",
"range": [
{
"introduced": "2.3.16.3"
},
{
"last_affected": "2.3.16.3"
}
],
"source": "CPE_STRING"
},
{
"cpe": "cpe:2.3:a:apache:struts:2.3.20:*:*:*:*:*:*:*",
"range": [
{
"introduced": "2.3.20"
},
{
"last_affected": "2.3.20"
}
],
"source": "CPE_STRING"
},
{
"cpe": "cpe:2.3:a:apache:struts:2.3.20.1:*:*:*:*:*:*:*",
"range": [
{
"introduced": "2.3.20.1"
},
{
"last_affected": "2.3.20.1"
}
],
"source": "CPE_STRING"
},
{
"cpe": "cpe:2.3:a:apache:struts:2.3.20.3:*:*:*:*:*:*:*",
"range": [
{
"introduced": "2.3.20.3"
},
{
"last_affected": "2.3.20.3"
}
],
"source": "CPE_STRING"
},
{
"cpe": "cpe:2.3:a:apache:struts:2.3.24:*:*:*:*:*:*:*",
"range": [
{
"introduced": "2.3.24"
},
{
"last_affected": "2.3.24"
}
],
"source": "CPE_STRING"
},
{
"cpe": "cpe:2.3:a:apache:struts:2.3.24.1:*:*:*:*:*:*:*",
"range": [
{
"introduced": "2.3.24.1"
},
{
"last_affected": "2.3.24.1"
}
],
"source": "CPE_STRING"
},
{
"cpe": "cpe:2.3:a:apache:struts:2.3.24.3:*:*:*:*:*:*:*",
"range": [
{
"introduced": "2.3.24.3"
},
{
"last_affected": "2.3.24.3"
}
],
"source": "CPE_STRING"
},
{
"cpe": "cpe:2.3:a:apache:struts:2.3.28:*:*:*:*:*:*:*",
"range": [
{
"introduced": "2.3.28"
},
{
"last_affected": "2.3.28"
}
],
"source": "CPE_STRING"
},
{
"cpe": "cpe:2.3:a:apache:struts:2.3.28.1:*:*:*:*:*:*:*",
"range": [
{
"introduced": "2.3.28.1"
},
{
"last_affected": "2.3.28.1"
}
],
"source": "CPE_STRING"
},
{
"cpe": "cpe:2.3:a:apache:struts:2.3.29:*:*:*:*:*:*:*",
"range": [
{
"introduced": "2.3.29"
},
{
"last_affected": "2.3.29"
}
],
"source": "CPE_STRING"
},
{
"cpe": "cpe:2.3:a:apache:struts:2.3.30:*:*:*:*:*:*:*",
"range": [
{
"introduced": "2.3.30"
},
{
"last_affected": "2.3.30"
}
],
"source": "CPE_STRING"
},
{
"cpe": "cpe:2.3:a:apache:struts:2.3.31:*:*:*:*:*:*:*",
"range": [
{
"introduced": "2.3.31"
},
{
"last_affected": "2.3.31"
}
],
"source": "CPE_STRING"
},
{
"cpe": "cpe:2.3:a:apache:struts:2.3.32:*:*:*:*:*:*:*",
"range": [
{
"introduced": "2.3.32"
},
{
"last_affected": "2.3.32"
}
],
"source": "CPE_STRING"
}
]
}
}
],
"versions": [
"2.3.1",
"2.3.1.1",
"2.3.1.2",
"2.3.12",
"2.3.14",
"2.3.14.1",
"2.3.14.2",
"2.3.14.3",
"2.3.15",
"2.3.15.1",
"2.3.15.2",
"2.3.15.3",
"2.3.16",
"2.3.16.1",
"2.3.16.2",
"2.3.16.3",
"2.3.20",
"2.3.20.1",
"2.3.20.3",
"2.3.24",
"2.3.24.1",
"2.3.24.3",
"2.3.28",
"2.3.28.1",
"2.3.29",
"2.3.3",
"2.3.30",
"2.3.31",
"2.3.32",
"2.3.4",
"2.3.4.1",
"2.3.7",
"2.3.8"
],
"database_specific": {
"source": "https://storage.googleapis.com/cve-osv-conversion/osv-output/CVE-2017-9791.json"
}
}
],
"modified": "2026-10-24T10:31:00.925261316Z",
"provider": "osv",
"references": [
"https://www.cisa.gov/known-exploited-vulnerabilities-catalog?field_cve=CVE-2017-9791",
"https://security.netapp.com/advisory/ntap-20180706-0002/",
"https://www.exploit-db.com/exploits/42324/",
"https://www.exploit-db.com/exploits/44643/"
],
"provider_metadata": {
"unresolved_ranges": [
{
"cpes": [
"cpe:2.3:a:apache:struts:2.3.1.1:*:*:*:*:*:*:*",
"cpe:2.3:a:apache:struts:2.3.1.2:*:*:*:*:*:*:*",
"cpe:2.3:a:apache:struts:2.3.12:*:*:*:*:*:*:*",
"cpe:2.3:a:apache:struts:2.3.14.1:*:*:*:*:*:*:*",
"cpe:2.3:a:apache:struts:2.3.14.2:*:*:*:*:*:*:*",
"cpe:2.3:a:apache:struts:2.3.14.3:*:*:*:*:*:*:*",
"cpe:2.3:a:apache:struts:2.3.14:*:*:*:*:*:*:*",
"cpe:2.3:a:apache:struts:2.3.15.1:*:*:*:*:*:*:*",
"cpe:2.3:a:apache:struts:2.3.15.2:*:*:*:*:*:*:*",
"cpe:2.3:a:apache:struts:2.3.15.3:*:*:*:*:*:*:*",
"cpe:2.3:a:apache:struts:2.3.15:*:*:*:*:*:*:*",
"cpe:2.3:a:apache:struts:2.3.16.1:*:*:*:*:*:*:*",
"cpe:2.3:a:apache:struts:2.3.16.2:*:*:*:*:*:*:*",
"cpe:2.3:a:apache:struts:2.3.16.3:*:*:*:*:*:*:*",
"cpe:2.3:a:apache:struts:2.3.16:*:*:*:*:*:*:*",
"cpe:2.3:a:apache:struts:2.3.1:*:*:*:*:*:*:*",
"cpe:2.3:a:apache:struts:2.3.20.1:*:*:*:*:*:*:*",
"cpe:2.3:a:apache:struts:2.3.20.3:*:*:*:*:*:*:*",
"cpe:2.3:a:apache:struts:2.3.20:*:*:*:*:*:*:*",
"cpe:2.3:a:apache:struts:2.3.24.1:*:*:*:*:*:*:*",
"cpe:2.3:a:apache:struts:2.3.24.3:*:*:*:*:*:*:*",
"cpe:2.3:a:apache:struts:2.3.24:*:*:*:*:*:*:*",
"cpe:2.3:a:apache:struts:2.3.28.1:*:*:*:*:*:*:*",
"cpe:2.3:a:apache:struts:2.3.28:*:*:*:*:*:*:*",
"cpe:2.3:a:apache:struts:2.3.29:*:*:*:*:*:*:*",
"cpe:2.3:a:apache:struts:2.3.30:*:*:*:*:*:*:*",
"cpe:2.3:a:apache:struts:2.3.31:*:*:*:*:*:*:*",
"cpe:2.3:a:apache:struts:2.3.32:*:*:*:*:*:*:*",
"cpe:2.3:a:apache:struts:2.3.3:*:*:*:*:*:*:*",
"cpe:2.3:a:apache:struts:2.3.4.1:*:*:*:*:*:*:*",
"cpe:2.3:a:apache:struts:2.3.4:*:*:*:*:*:*:*",
"cpe:2.3:a:apache:struts:2.3.7:*:*:*:*:*:*:*",
"cpe:2.3:a:apache:struts:2.3.8:*:*:*:*:*:*:*"
],
"vendor_product": "apache:struts",
"extracted_events": [
{
"range": [
{
"introduced": "2.3.1"
},
{
"last_affected": "2.3.1"
},
{
"introduced": "2.3.1.1"
},
{
"last_affected": "2.3.1.1"
},
{
"introduced": "2.3.1.2"
},
{
"last_affected": "2.3.1.2"
},
{
"introduced": "2.3.3"
},
{
"last_affected": "2.3.3"
},
{
"introduced": "2.3.4"
},
{
"last_affected": "2.3.4"
},
{
"introduced": "2.3.4.1"
},
{
"last_affected": "2.3.4.1"
},
{
"introduced": "2.3.7"
},
{
"last_affected": "2.3.7"
},
{
"introduced": "2.3.8"
},
{
"last_affected": "2.3.8"
},
{
"introduced": "2.3.12"
},
{
"last_affected": "2.3.12"
},
{
"introduced": "2.3.14"
},
{
"last_affected": "2.3.14"
},
{
"introduced": "2.3.14.1"
},
{
"last_affected": "2.3.14.1"
},
{
"introduced": "2.3.14.2"
},
{
"last_affected": "2.3.14.2"
},
{
"introduced": "2.3.14.3"
},
{
"last_affected": "2.3.14.3"
},
{
"introduced": "2.3.15"
},
{
"last_affected": "2.3.15"
},
{
"introduced": "2.3.15.1"
},
{
"last_affected": "2.3.15.1"
},
{
"introduced": "2.3.15.2"
},
{
"last_affected": "2.3.15.2"
},
{
"introduced": "2.3.15.3"
},
{
"last_affected": "2.3.15.3"
},
{
"introduced": "2.3.16"
},
{
"last_affected": "2.3.16"
},
{
"introduced": "2.3.16.1"
},
{
"last_affected": "2.3.16.1"
},
{
"introduced": "2.3.16.2"
},
{
"last_affected": "2.3.16.2"
},
{
"introduced": "2.3.16.3"
},
{
"last_affected": "2.3.16.3"
},
{
"introduced": "2.3.20"
},
{
"last_affected": "2.3.20"
},
{
"introduced": "2.3.20.1"
},
{
"last_affected": "2.3.20.1"
},
{
"introduced": "2.3.20.3"
},
{
"last_affected": "2.3.20.3"
},
{
"introduced": "2.3.24"
},
{
"last_affected": "2.3.24"
},
{
"introduced": "2.3.24.1"
},
{
"last_affected": "2.3.24.1"
},
{
"introduced": "2.3.24.3"
},
{
"last_affected": "2.3.24.3"
},
{
"introduced": "2.3.28"
},
{
"last_affected": "2.3.28"
},
{
"introduced": "2.3.28.1"
},
{
"last_affected": "2.3.28.1"
},
{
"introduced": "2.3.29"
},
{
"last_affected": "2.3.29"
},
{
"introduced": "2.3.30"
},
{
"last_affected": "2.3.30"
},
{
"introduced": "2.3.31"
},
{
"last_affected": "2.3.31"
},
{
"introduced": "2.3.32"
},
{
"last_affected": "2.3.32"
}
],
"source": "CPE_STRING"
}
]
}
]
}
},
"related_cves": [
{
"value": "CVE-2017-9791",
"evidence": "/id"
}
],
"security_relevant": true,
"severity_evidence": "/severity/0/score"
},
"source_id": "core-osv",
"document_id": 439655,
"published_at": "2017-07-10T16:29:00.277+00:00"
}