Summary
IceCMS through version 4.1.5 contains an unauthenticated SQL injection vulnerability in the article lookup endpoint. A remote attacker may manipulate the num path parameter to alter database queries and retrieve application data when the endpoint is publicly reachable.
IceCMS through version 4.1.5 contains an unauthenticated SQL injection vulnerability in the article lookup endpoint. A remote attacker may manipulate the num path parameter to alter database queries and retrieve application data when the endpoint is publicly reachable.
Affected context
The vulnerability occurs in the /WebArticle/findarticlesbynum article retrieval endpoint when the num path parameter is incorporated into a MyBatis-Plus QueryWrapper without adequate parameterization or validation. Deployments are at greater risk when this endpoint is exposed to untrusted networks and does not require authentication.
The vulnerability occurs in the /WebArticle/findarticlesbynum article retrieval endpoint when the num path parameter is incorporated into a MyBatis-Plus QueryWrapper without adequate parameterization or validation. Deployments are at greater risk when this endpoint is exposed to untrusted networks and does not require authentication.
Exploit preconditions
- Attack surface: HTTP article lookup endpoint
- Required access: Network access to the endpoint; authentication is not expected to be required
- Trigger point: Processing of the
numpath parameter in the article query - Why exploitation is possible: Attacker-controlled input is concatenated into SQL-related query construction, allowing query logic to be influenced
- Attack surface: HTTP article lookup endpoint
- Required access: Network access to the endpoint; authentication is not expected to be required
- Trigger point: Processing of the
numpath parameter in the article query - Why exploitation is possible: Attacker-controlled input is concatenated into SQL-related query construction, allowing query logic to be influenced
Why this happens
The underlying issue is improper neutralization of special elements in SQL commands, mapping to CWE-89: SQL Injection. The application treats a path parameter as query syntax rather than strictly as a data value, allowing crafted input to modify the intended LIMIT-related query behavior. This unsafe construction can support union-based or blind database extraction.
The underlying issue is improper neutralization of special elements in SQL commands, mapping to CWE-89: SQL Injection. The application treats a path parameter as query syntax rather than strictly as a data value, allowing crafted input to modify the intended LIMIT-related query behavior. This unsafe construction can support union-based or blind database extraction.
Potential impact
- Unauthorized disclosure of database contents
- Exposure of application, user, or configuration data
- Circumvention of intended query constraints
- Increased risk of further compromise if sensitive credentials are stored in the database
- Unauthorized disclosure of database contents
- Exposure of application, user, or configuration data
- Circumvention of intended query constraints
- Increased risk of further compromise if sensitive credentials are stored in the database
General mitigation guidance
Mitigation generally focuses on eliminating dynamic SQL construction from untrusted input and reducing database privileges.
Common defensive patterns include:
- Use parameterized queries and framework APIs that bind values rather than concatenate SQL fragments
- Validate the
numparameter against a strict numeric schema and reject unexpected values - Keep query structure separate from user-supplied data, including pagination and limit handling
- Apply least-privilege permissions to the application database account
- Avoid exposing database error details through HTTP responses
- Enforce authentication and network access controls for endpoints that do not need public exposure
Mitigation generally focuses on eliminating dynamic SQL construction from untrusted input and reducing database privileges.
Common defensive patterns include:
- Use parameterized queries and framework APIs that bind values rather than concatenate SQL fragments
- Validate the
numparameter against a strict numeric schema and reject unexpected values - Keep query structure separate from user-supplied data, including pagination and limit handling
- Apply least-privilege permissions to the application database account
- Avoid exposing database error details through HTTP responses
- Enforce authentication and network access controls for endpoints that do not need public exposure
How teams detect issues like this
Organizations can look for SQL injection risks through:
- Static analysis rules identifying string concatenation or interpolation in SQL and ORM query construction
- Code review checks for request parameters passed into query wrappers without typed validation or binding
- Dynamic testing of public endpoints for unexpected query behavior, error leakage, and response differences
- Web application firewall or API gateway policies that detect anomalous query-oriented input
- Database monitoring for unusual union-like queries, repeated probing, or unexpected access to sensitive tables
Automated security review tools may help identify unsafe query construction during development.
Organizations can look for SQL injection risks through:
- Static analysis rules identifying string concatenation or interpolation in SQL and ORM query construction
- Code review checks for request parameters passed into query wrappers without typed validation or binding
- Dynamic testing of public endpoints for unexpected query behavior, error leakage, and response differences
- Web application firewall or API gateway policies that detect anomalous query-oriented input
- Database monitoring for unusual union-like queries, repeated probing, or unexpected access to sensitive tables
Automated security review tools may help identify unsafe query construction during development.

