/

CVE-2025-71458

Severity:

HIGH RISK

(7.5)

SQL Injection (CWE-89) in FTS3 Web Monitoring /linkinfo

CVE-2025-71458

Received

Vulnerability type

Category:

SQL Injection

CWE:

CWE-89

Impact:

Unauthorized access to sensitive database contents and credential exposure

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

FTS3 Web Monitoring has an unauthenticated SQL injection vulnerability in the /linkinfo endpoint. A remote attacker may use crafted source_se or dest_se query parameters to infer database contents and potentially read stored cloud-storage credentials and token-provider client secrets.

FTS3 Web Monitoring has an unauthenticated SQL injection vulnerability in the /linkinfo endpoint. A remote attacker may use crafted source_se or dest_se query parameters to infer database contents and potentially read stored cloud-storage credentials and token-provider client secrets.

Affected context

The issue affects FTS3 Web Monitoring (fts-monitoring) versions 3.12.0 through 3.13.2 and 3.14.0. It occurs in the /linkinfo endpoint handled by get_linkinfo, where the source_se and dest_se query parameters reach SQL processing without adequate protection.

The issue affects FTS3 Web Monitoring (fts-monitoring) versions 3.12.0 through 3.13.2 and 3.14.0. It occurs in the /linkinfo endpoint handled by get_linkinfo, where the source_se and dest_se query parameters reach SQL processing without adequate protection.

Exploit preconditions

  • Attack surface: The /linkinfo endpoint must be reachable over the network.
  • Required access: The vulnerability is described as unauthenticated; no prior login is required.
  • Trigger point: Processing of the source_se or dest_se query parameters by get_linkinfo.
  • Why exploitation is possible: Untrusted parameter values can influence SQL statements, allowing blind injection and inference of stored database data.
  • Attack surface: The /linkinfo endpoint must be reachable over the network.
  • Required access: The vulnerability is described as unauthenticated; no prior login is required.
  • Trigger point: Processing of the source_se or dest_se query parameters by get_linkinfo.
  • Why exploitation is possible: Untrusted parameter values can influence SQL statements, allowing blind injection and inference of stored database data.

Why this happens

The underlying issue is that untrusted query parameters affect SQL execution without sufficient separation between data and query structure. This is an SQL injection flaw mapped to CWE-89, which describes improper neutralization of special elements in SQL commands.

The underlying issue is that untrusted query parameters affect SQL execution without sufficient separation between data and query structure. This is an SQL injection flaw mapped to CWE-89, which describes improper neutralization of special elements in SQL commands.

Potential impact

  • An attacker could infer database contents through blind SQL injection.
  • Stored cloud-storage credentials may be exposed.
  • Token-provider client secrets may be disclosed.
  • Exposed credentials could enable unauthorized access to connected services, depending on their permissions.
  • An attacker could infer database contents through blind SQL injection.
  • Stored cloud-storage credentials may be exposed.
  • Token-provider client secrets may be disclosed.
  • Exposed credentials could enable unauthorized access to connected services, depending on their permissions.

General mitigation guidance

Defensive measures typically focus on ensuring user-controlled values remain data rather than executable SQL.

Common patterns include:

  • Using parameterized queries or prepared statements for database access.
  • Avoiding dynamic SQL construction with request parameters.
  • Applying strict allowlists and appropriate type and length checks as defense in depth.
  • Limiting database account privileges to the minimum needed by the endpoint.
  • Protecting stored credentials with least-privilege access and reducing their exposure to application components.

Defensive measures typically focus on ensuring user-controlled values remain data rather than executable SQL.

Common patterns include:

  • Using parameterized queries or prepared statements for database access.
  • Avoiding dynamic SQL construction with request parameters.
  • Applying strict allowlists and appropriate type and length checks as defense in depth.
  • Limiting database account privileges to the minimum needed by the endpoint.
  • Protecting stored credentials with least-privilege access and reducing their exposure to application components.

How teams detect issues like this

Useful detection approaches include:

  • Static analysis rules that flag SQL queries built through string concatenation or interpolation with request data.
  • Code review of get_linkinfo and other handlers that pass query parameters to database operations.
  • Runtime monitoring for unusual requests to /linkinfo, repeated parameter variations, and anomalous database errors or query behavior.
  • Policy checks that require parameterized database access and least-privilege database permissions.

Useful detection approaches include:

  • Static analysis rules that flag SQL queries built through string concatenation or interpolation with request data.
  • Code review of get_linkinfo and other handlers that pass query parameters to database operations.
  • Runtime monitoring for unusual requests to /linkinfo, repeated parameter variations, and anomalous database errors or query behavior.
  • Policy checks that require parameterized database access and least-privilege database permissions.

Sources

SourceLink
advisories.egi.euadvisories.egi.eu/Advisory-EGI-SVG-2025-09
github.comgithub.com/cern-fts/fts-monitoring
github.comgithub.com/cern-fts/fts-monitoring/blob/v3.14.0/src/apps/ftsmon/views/linkinfo.py#L27-L60
github.comgithub.com/cern-fts/fts-monitoring/commit/96241f6e9911195aae8e9e07bce511da4e81fc08
github.comgithub.com/cern-fts/fts-monitoring/commit/e993c27d60a150c67cc2b415ddb272b5d3f05596
github.comgithub.com/cern-fts/fts-monitoring/releases/tag/v3.13.3
github.comgithub.com/cern-fts/fts-monitoring/releases/tag/v3.14.1
vulncheck.comvulncheck.com/advisories/fts3-web-monitoring-3.12.0-through-3.13.2-and-3.14.0-sql-injection-via-linkinfo

Frequently asked

questions

Yes. The described vulnerable endpoint is network-accessible, and exploitation is unauthenticated when the endpoint is reachable.

The vulnerability is described as unauthenticated, so prior authentication is not required.

Keep request values out of SQL syntax by using parameterized queries or prepared statements, with validation as an additional safeguard.

Use secure database APIs by default, review query construction paths, enforce static-analysis and code-review checks, and restrict database privileges and access to sensitive stored data.

Yes. The described vulnerable endpoint is network-accessible, and exploitation is unauthenticated when the endpoint is reachable.

The vulnerability is described as unauthenticated, so prior authentication is not required.

Keep request values out of SQL syntax by using parameterized queries or prepared statements, with validation as an additional safeguard.

Use secure database APIs by default, review query construction paths, enforce static-analysis and code-review checks, and restrict database privileges and access to sensitive stored data.

Find out what's already
exploitable in your codebase.