Cyber Security News

Critical pgAdmin Flaw Allows Remote Code Execution

A severe Remote Code Execution (RCE) vulnerability in pgAdmin (CVE-2025-2945), the popular PostgreSQL database management tool, has been patched after researchers discovered attackers could hijack servers through malicious API requests.

The flaw affects pgAdmin versions ≤9.1 and allows authenticated users to execute arbitrary commands on affected systems.

Technical Breakdown

The vulnerability stems from improper use of Python’s eval() function in two endpoints:

  1. /sqleditor/query_tool/download/<int:trans_id>
query_commited = eval(value) if isinstance(value, str) else value  # Vuln code

Attackers could send crafted POST requests containing Python code (e.g., open(‘/tmp/pyozzi-poc’, ‘w’)) to write files or execute commands.

  1. /cloud/deploy
high_availability = 'REGIONAL' if eval(args.high_availability) else 'ZONAL'  # Vuln code

Malicious inputs like reverse shell payloads could grant full server access:

exec('import socket,subprocess,os;s=socket.socket(...)')

Both endpoints processed user input without sanitization, enabling attackers to abuse the eval() function’s ability to execute code.

Attack Scenarios & Impact

Successful exploitation could lead to:

  • Database Manipulation: Theft or destruction of sensitive PostgreSQL data.
  • Lateral Movement: Compromise of internal networks via server access.
  • Credential Theft: Extraction of API keys, passwords, and tokens from configuration files.
  • Persistent Backdoors: Installation of malicious scripts for long-term access.

Notably, the flaw requires authentication, limiting immediate widespread exploitation. However, compromised accounts or phishing attacks could bypass this barrier.

Patch & Remediation

The pgAdmin team resolved the issue in version 9.2 by eliminating eval() usage. For example, in the query_commited parameter patch:

- query_commited = eval(value) if isinstance(value, str) else value 
+ query_commited = value.lower() == 'true'  # Secure boolean parsing 

Users must update to pgAdmin 9.2 immediately. Organizations unable to patch should restrict pgAdmin instance access to trusted networks and audit user privileges.

The bug hunter who discovered the flaw noted:

“Why use eval() here? The logic didn’t need it at all. This was an avoidable risk.”

The pgAdmin security team addressed the report within 24 hours, highlighting the importance of coordinated disclosure.

Find this News Interesting! Follow us on Google News, LinkedIn, & X to Get Instant Updates!

Divya

Divya is a Senior Journalist at GBhackers covering Cyber Attacks, Threats, Breaches, Vulnerabilities and other happenings in the cyber world.

Recent Posts

Hackers Use ConnectWise SkyKick Credentials to Access Microsoft 365, Halting Cloud Backups

Attackers abused compromised ConnectWise Cloud Backup credentials to access Microsoft 365 customer environments, prompting ConnectWise…

1 day ago

Anthropic’s Claude AI Uncovers Origins of NSA-Provided Cryptographic Keys After 25 Years

Anthropic says an internal Claude research model reconstructed how the National Security Agency generated seeds…

1 day ago

Critical WordPress Flaws Allow Attackers to Execute Remote Code Without Authentication

Two WordPress Core vulnerabilities can be chained to execute remote code without authentication, according to…

1 day ago

OpenBSD Kernel Flaw Dating Back 37 Years Enables Local Privilege Escalation to Root

A newly disclosed OpenBSD kernel exploitation chain combines a shared memory accounting flaw with a…

1 day ago

GhostAction Hackers Hide Credential-Stealing Malware in Fake Font Files Across 94 GitHub Repositories

GhostAction attackers have expanded their GitHub credential theft campaign with a second stage that disguises…

1 day ago

SideCopy Hackers Target Indian Organizations With ReverseRAT Malware to Steal Data

Indian authorities have warned that SideCopy hackers are targeting Indian organizations, including academic institutions, with…

1 day ago