This is an automated email from the ASF dual-hosted git repository.

pkarwasz pushed a commit to branch feat/openvex-file
in repository https://gitbox.apache.org/repos/asf/commons-text.git


The following commit(s) were added to refs/heads/feat/openvex-file by this push:
     new 0ddf5e12 fix: Add required `action_statement` field
0ddf5e12 is described below

commit 0ddf5e12211d9df42c99da4131606d4bdb8e793a
Author: Piotr P. Karwasz <[email protected]>
AuthorDate: Thu Jul 31 14:12:28 2025 +0200

    fix: Add required `action_statement` field
---
 src/conf/security/VEX.cyclonedx.xml   | 4 ++++
 src/conf/security/generate_openvex.py | 7 +++++++
 src/conf/security/openvex.json        | 1 +
 3 files changed, 12 insertions(+)

diff --git a/src/conf/security/VEX.cyclonedx.xml 
b/src/conf/security/VEX.cyclonedx.xml
index 85de5662..2fd4d7e4 100644
--- a/src/conf/security/VEX.cyclonedx.xml
+++ b/src/conf/security/VEX.cyclonedx.xml
@@ -64,6 +64,10 @@
           </source>
         </reference>
       </references>
+      <recommendation>
+Check if untrusted user input is passed to the `StringSubstitutor` or 
`StringLookup` classes,
+and if so, upgrade to Apache Commons Lang 3.18.0 or later.
+      </recommendation>
       <analysis>
         <state>exploitable</state>
         <responses>
diff --git a/src/conf/security/generate_openvex.py 
b/src/conf/security/generate_openvex.py
index b77e0dc8..8dd62a59 100755
--- a/src/conf/security/generate_openvex.py
+++ b/src/conf/security/generate_openvex.py
@@ -121,6 +121,13 @@ def to_openvex_statement(vuln: ET.Element, product: dict) 
-> dict:
     if detail:
         statement['status_notes'] = detail
 
+    remediation = _find_stripped_text(vuln, 'b:recommendation')
+    if remediation:
+        statement['action_statement'] = remediation
+    else:
+        if statement['status'] == 'affected':
+            raise ValueError("Affected vulnerabilities must have a 
<recommendation> element")
+
     _add_optional_date(analysis, 'b:firstIssued', statement, 'timestamp')
     _add_optional_date(analysis, 'b:lastUpdated', statement, 'last_updated')
 
diff --git a/src/conf/security/openvex.json b/src/conf/security/openvex.json
index a287ca50..175568b7 100644
--- a/src/conf/security/openvex.json
+++ b/src/conf/security/openvex.json
@@ -25,6 +25,7 @@
       },
       "status": "affected",
       "status_notes": "CVE-2025-48924 is exploitable in Apache Commons Text 
versions 1.5 and later, but only when all the following conditions are 
met:\n\n* The consuming project includes a vulnerable version of Commons Text 
on the classpath.\n  As of version `1.14.1`, Commons Text no longer references 
a vulnerable version of the `commons-lang3` library in its POM file.\n* 
Unvalidated or unsanitized user input is passed to the `StringSubstitutor` or 
`StringLookup` classes.\n* An interpol [...]
+      "action_statement": "Check if untrusted user input is passed to the 
`StringSubstitutor` or `StringLookup` classes,\nand if so, upgrade to Apache 
Commons Lang 3.18.0 or later.",
       "timestamp": "2025-07-29T12:26:42Z",
       "last_updated": "2025-07-29T12:26:42Z"
     }

Reply via email to