/

CVE-2026-111685

Severity:

HIGH RISK

(7.5)

SQL Injection (CWE-89) in IceCMS Resource Endpoint

CVE-2026-111685

Deferred

Vulnerability type

Category:

SQL Injection

CWE:

CWE-89

Impact:

Unauthorized Database Access and Data Disclosure

Severity:

HIGH RISK

(7.5)

CVSS version:

3.1

Catch this CVE while code is being written

Detect vulnerable code directly in pull requests, so CVEs are fixed before merge.

Summary

IceCMS through version 4.1.5 contains an unauthenticated SQL injection vulnerability in the resource lookup endpoint. A remote attacker may supply a crafted num path parameter to influence a database query and retrieve database contents through union-based or blind SQL injection techniques.

IceCMS through version 4.1.5 contains an unauthenticated SQL injection vulnerability in the resource lookup endpoint. A remote attacker may supply a crafted num path parameter to influence a database query and retrieve database contents through union-based or blind SQL injection techniques.

Affected context

The issue occurs in IceCMS deployments exposing /WebResource/findresourcebynum without authentication. It becomes risky when the num path parameter is incorporated into a query through QueryWrapper.last() without reliable parameterization or strict input validation, allowing request data to alter SQL execution.

The issue occurs in IceCMS deployments exposing /WebResource/findresourcebynum without authentication. It becomes risky when the num path parameter is incorporated into a query through QueryWrapper.last() without reliable parameterization or strict input validation, allowing request data to alter SQL execution.

Exploit preconditions

  • Attack surface: Publicly reachable IceCMS resource lookup endpoint
  • Required access: No authentication may be required
  • Trigger point: Processing of the num path parameter
  • Why exploitation is possible: The parameter is concatenated into a query fragment associated with a LIMIT clause, allowing attacker-controlled input to affect database interpretation
  • Attack surface: Publicly reachable IceCMS resource lookup endpoint
  • Required access: No authentication may be required
  • Trigger point: Processing of the num path parameter
  • Why exploitation is possible: The parameter is concatenated into a query fragment associated with a LIMIT clause, allowing attacker-controlled input to affect database interpretation

Why this happens

The vulnerability results from constructing SQL query fragments with externally supplied data instead of treating that data strictly as a value. Use of a query-builder escape hatch such as QueryWrapper.last() can bypass normal parameterization when input is concatenated into the resulting SQL. This behavior maps to CWE-89: Improper Neutralization of Special Elements used in an SQL Command, commonly known as SQL injection.

The vulnerability results from constructing SQL query fragments with externally supplied data instead of treating that data strictly as a value. Use of a query-builder escape hatch such as QueryWrapper.last() can bypass normal parameterization when input is concatenated into the resulting SQL. This behavior maps to CWE-89: Improper Neutralization of Special Elements used in an SQL Command, commonly known as SQL injection.

Potential impact

  • An attacker may retrieve sensitive database contents
  • An attacker could infer information through blind database queries
  • Database records may be exposed beyond intended authorization boundaries
  • Application and user data could be altered if the database account permits write operations
  • Database availability may be affected by resource-intensive queries
  • An attacker may retrieve sensitive database contents
  • An attacker could infer information through blind database queries
  • Database records may be exposed beyond intended authorization boundaries
  • Application and user data could be altered if the database account permits write operations
  • Database availability may be affected by resource-intensive queries

General mitigation guidance

Mitigation generally focuses on removing SQL interpretation from request-controlled values.

Common defensive patterns include:

  • Use parameterized queries or framework APIs that bind values rather than concatenate SQL fragments
  • Avoid passing untrusted input to raw query-builder methods such as last()
  • Apply strict allowlist validation for numeric identifiers and pagination values
  • Enforce authentication and authorization for resource lookup operations where appropriate
  • Run the application with a database account limited to required privileges
  • Return minimal query results and avoid exposing unnecessary database errors

Mitigation generally focuses on removing SQL interpretation from request-controlled values.

Common defensive patterns include:

  • Use parameterized queries or framework APIs that bind values rather than concatenate SQL fragments
  • Avoid passing untrusted input to raw query-builder methods such as last()
  • Apply strict allowlist validation for numeric identifiers and pagination values
  • Enforce authentication and authorization for resource lookup operations where appropriate
  • Run the application with a database account limited to required privileges
  • Return minimal query results and avoid exposing unnecessary database errors

How teams detect issues like this

Organizations can identify similar issues through:

  • Static analysis rules for string concatenation in SQL and raw query-builder APIs
  • Code review checks for request parameters passed to last(), raw SQL, or dynamically assembled clauses
  • Dynamic testing of numeric and pagination parameters using safe SQL injection test cases
  • Web application firewall or API gateway policies monitoring anomalous query-parameter patterns
  • Database audit logging for unexpected unions, conditional probes, or abnormal query activity

Automated code review and software composition analysis tools may help identify unsafe query construction patterns.

Organizations can identify similar issues through:

  • Static analysis rules for string concatenation in SQL and raw query-builder APIs
  • Code review checks for request parameters passed to last(), raw SQL, or dynamically assembled clauses
  • Dynamic testing of numeric and pagination parameters using safe SQL injection test cases
  • Web application firewall or API gateway policies monitoring anomalous query-parameter patterns
  • Database audit logging for unexpected unions, conditional probes, or abnormal query activity

Automated code review and software composition analysis tools may help identify unsafe query construction patterns.

Sources

SourceLink
github.comgithub.com/Thecosy/IceCMS
github.comgithub.com/Thecosy/IceCMS/blob/afd7a9f0d04a714e7c7e735e566c27f54b5d5201/IceCMS-ment/src/main/java/com/ttice/icewkment/controller/frontend/WebResourceController.java#L128-L134
hackmd.iohackmd.io/@hieuPenguinnn/icecms-webresource-webarticle-findbynum-limit-sqli
vulncheck.comvulncheck.com/advisories/icecms-through-4.1.5-sql-injection-via-webresource-findresourcebynum

Frequently asked

questions

Yes. The affected endpoint may be reachable over the network, and exploitation does not necessarily require an authenticated session.

The attacker generally needs network access to the IceCMS resource lookup endpoint. The described issue does not require prior authentication when the endpoint is exposed without access controls.

Use parameterized database access and ensure request values cannot become SQL syntax. Numeric path parameters should also be strictly validated before query construction.

Combine secure query APIs, allowlist validation, least-privilege database accounts, authorization checks, code review, and continuous testing for injection flaws.

Yes. The affected endpoint may be reachable over the network, and exploitation does not necessarily require an authenticated session.

The attacker generally needs network access to the IceCMS resource lookup endpoint. The described issue does not require prior authentication when the endpoint is exposed without access controls.

Use parameterized database access and ensure request values cannot become SQL syntax. Numeric path parameters should also be strictly validated before query construction.

Combine secure query APIs, allowlist validation, least-privilege database accounts, authorization checks, code review, and continuous testing for injection flaws.

Find out what's already
exploitable in your codebase.