CVE-2025-12231
BaseFortify
Publication date: 2025-10-27
Last updated on: 2026-04-29
Assigner: VulDB
Description
Description
CVSS Scores
EPSS Scores
| Probability: | |
| Percentile: |
Meta Information
Affected Vendors & Products
| Vendor | Product | Version / Range |
|---|---|---|
| projectworlds | expense_management_system | 1.0 |
Helpful Resources
Exploitability
| CWE ID | Description |
|---|---|
| CWE-79 | The product does not neutralize or incorrectly neutralizes user-controllable input before it is placed in output that is used as a web page that is served to other users. |
| CWE-94 | The product constructs all or part of a code segment using externally-influenced input from an upstream component, but it does not neutralize or incorrectly neutralizes special elements that could modify the syntax or behavior of the intended code segment. |
Attack-Flow Graph
AI Powered Q&A
Can you explain this vulnerability to me?
This vulnerability is a Persistent Cross-Site Scripting (XSS) issue in the Expense Management System 1.0, specifically in the file public/admin/expense_categories/create. It occurs because the application does not properly sanitize or encode user input before storing and displaying it. An authenticated attacker can submit malicious JavaScript code through form fields like "Name," which gets stored in the database and later executed in the browsers of other users when they view or interact with the affected pages. This allows the attacker to run arbitrary scripts in the context of the victim's browser. [1]
How can this vulnerability impact me? :
This vulnerability can lead to several serious impacts including hijacking user sessions by stealing cookies, performing unauthorized actions by impersonating victims (such as creating admin accounts or deleting entries), conducting phishing attacks by injecting fake login forms, logging keystrokes to capture sensitive information, and defacing the website by modifying page content. Essentially, it allows attackers to execute malicious scripts that compromise user security and the integrity of the system. [1]
How can this vulnerability be detected on my network or system? Can you suggest some commands?
This vulnerability can be detected by testing the input fields on the Expense Categories Page, specifically the 'Name' field in the /public/admin/expense_categories/create endpoint, for persistent cross-site scripting (XSS). You can submit a payload such as `<img src=x onerror=alert('XSS')>` or `<img src=x onerror=alert(document.cookie)>` in the form and then view or print the affected page to see if the JavaScript alert triggers, indicating the vulnerability. For automated detection, you can use web vulnerability scanners that test for stored XSS in form inputs. Additionally, manual testing with curl or similar tools can be done by submitting payloads and then retrieving the page to check if the payload is executed. Example curl commands: 1) Submit payload: `curl -X POST -d "name=<img src=x onerror=alert('XSS')>" https://target/public/admin/expense_categories/create` 2) Retrieve page to check execution: `curl https://target/public/admin/expense_categories` and observe if the payload is reflected and executed in a browser. [1]
What immediate steps should I take to mitigate this vulnerability?
Immediate mitigation steps include implementing proper output encoding on the affected page before rendering user-supplied data. Specifically, use PHP's `htmlspecialchars()` function with flags `ENT_QUOTES` and character set `UTF-8` to convert special characters into HTML entities, preventing script execution. For example, replace vulnerable code like `echo $row['full_name'];` with `echo htmlspecialchars($row['full_name'], ENT_QUOTES, 'UTF-8');`. This ensures that any injected scripts are displayed as text rather than executed. Additionally, restrict access to the affected page to trusted users and monitor for suspicious activity until the fix is applied. [1]