CVE-2025-13287 Overview
CVE-2025-13287 is a SQL injection vulnerability affecting itsourcecode Online Voting System version 1.0. The flaw resides in the /index.php?page=categories endpoint, where the id and category parameters are passed unsanitized into SQL queries. Attackers can manipulate these arguments to inject arbitrary SQL statements. The vulnerability is exploitable remotely and requires only low-level authentication. Public disclosure has occurred through VulDB and a GitHub issue tracker, increasing the likelihood of opportunistic exploitation against exposed deployments. The weakness is classified under CWE-89 (Improper Neutralization of Special Elements used in an SQL Command) and CWE-74 (Improper Neutralization of Special Elements in Output).
Critical Impact
Authenticated remote attackers can inject SQL via the id or category parameters on the categories page, leading to unauthorized data access, modification, or disclosure within the voting system database.
Affected Products
- itsourcecode Online Voting System 1.0
- Vendor: angeljudesuarez
- CPE: cpe:2.3:a:angeljudesuarez:online_voting_system:1.0
Discovery Timeline
- 2025-11-17 - CVE-2025-13287 published to NVD
- 2026-06-17 - Last updated in NVD database
Technical Details for CVE-2025-13287
Vulnerability Analysis
The vulnerability exists in the categories page handler reached through /index.php?page=categories. The application accepts the id and category parameters directly from the HTTP request and concatenates them into SQL queries without parameterization or input sanitization. This allows an authenticated attacker to break out of the intended query context and append arbitrary SQL clauses.
Because the Online Voting System stores voter records, ballots, and category configuration in the backing database, successful injection can disclose or modify election-relevant data. The attack is executable over the network and the public availability of exploit details elevates real-world risk despite the relatively low CVSS rating.
Root Cause
The root cause is missing input validation and the absence of prepared statements when constructing SQL queries from user-supplied id and category parameters. The PHP code path directly interpolates request variables into the query string, satisfying both CWE-89 and the broader injection category CWE-74.
Attack Vector
An attacker with low-privilege access sends a crafted HTTP request to /index.php?page=categories with malicious payloads embedded in the id or category query parameters. Typical payloads use boolean-based, union-based, or time-based techniques to extract data from underlying tables. No user interaction is required, and the attack can be automated using publicly available SQL injection tooling. Refer to the GitHub Issue Discussion and VulDB #332627 for additional technical details.
Detection Methods for CVE-2025-13287
Indicators of Compromise
- HTTP requests to /index.php?page=categories containing SQL metacharacters such as ', ", --, UNION, SLEEP(, or OR 1=1 in the id or category parameters.
- Unexpected database error messages or HTTP 500 responses originating from the categories endpoint.
- Anomalous query volume or response-time spikes against the voting system database, consistent with time-based blind injection.
- Web server access logs showing repeated probing of the id parameter with incrementing or encoded payloads.
Detection Strategies
- Deploy a web application firewall rule set to flag SQL injection signatures targeting the page=categories endpoint.
- Enable verbose database query logging and alert on queries containing concatenated user input from the categories module.
- Correlate authentication logs with HTTP request patterns to identify low-privilege accounts issuing injection payloads.
Monitoring Recommendations
- Forward web, application, and database logs to a central analytics platform for cross-source correlation.
- Baseline normal parameter values for id and category and alert on deviations such as non-numeric id values.
- Monitor outbound database connections and DNS queries from the application server for signs of out-of-band data exfiltration.
How to Mitigate CVE-2025-13287
Immediate Actions Required
- Restrict network access to the Online Voting System to trusted networks or place it behind a VPN until a vendor fix is available.
- Apply WAF virtual patching rules that block SQL injection payloads targeting id and category query parameters.
- Audit application and database logs for prior exploitation attempts against /index.php?page=categories.
- Rotate database credentials and review user accounts for unauthorized modifications.
Patch Information
No official vendor patch has been published at the time of writing. Operators should monitor the itsourcecode project page and the VulDB advisory for updates. Until a fix is released, code maintainers should refactor the categories handler to use parameterized queries via PDO or mysqli prepared statements and apply server-side validation that constrains id to integers and category to an allow-listed set of values.
Workarounds
- Implement input validation that rejects non-numeric id values and restricts category to expected strings before reaching the query layer.
- Configure the database account used by the application with least-privilege rights, removing schema modification permissions.
- Disable or remove the categories module if it is not required for production use.
- Place the application behind a reverse proxy that strips or encodes SQL metacharacters in query strings.
Disclaimer: This content was generated using AI. While we strive for accuracy, please verify critical information with official sources.

