ambionics
Source-scoped identity with 5 associated PoCs and 6 linked vulnerabilities.
Exploit catalog results
Showing 5 PoCs on this page
GitHubambionics/cve-2026-9082-drupal-postgresql-rce
Repository PoCStars: 11Created 2026-05-26ExploitCVE-2026-90828 files
Analysis
Technical assessment
A Python exploit that leverages an unauthenticated SQL injection in Drupal's JSON:API to achieve remote code execution on a PostgreSQL backend by writing a native preload library via large objects and triggering it through session_preload_libraries.
Backdoor review
No backdoor observed in reviewed code
The repository contains a proof-of-concept exploit for CVE-2026-9082, a Drupal PostgreSQL SQL injection. The Python script performs the documented exploit steps: SQL injection, PostgreSQL preload library compilation, file write via large objects, configuration reload, and command output retrieval. No concealed backdoor, unrelated payload, or deceptive behavior was observed in the reviewed text files.
Classification basis and observed behavior
Classification basis
The artifact contains a complete, functional exploit that actively exercises the SQL injection vulnerability to achieve remote code execution. It sends malicious SQL payloads, writes files to the server, and executes arbitrary commands, which is the definition of exploit code.
README.md:3drupal-postgres-preload-rce.py:1-356Requirements
- Target Drupal instance with vulnerable JSON:API endpoint and PostgreSQL superuser connection
README.md:33 - Local C compiler (cc) to build a PostgreSQL preload shared object
README.md:40 - Python 3 with requests library
requirements.txt:1
Observed behavior
- Sends crafted HTTP GET requests to /jsonapi/node/article with SQL injection payloads in filter parameters
drupal-postgres-preload-rce.py:162-171 - Extracts PostgreSQL version, current user, superuser status, and data directory via SQL injection
drupal-postgres-preload-rce.py:303-306 - Compiles a C shared library containing a _PG_init function that executes an arbitrary shell command
drupal-postgres-preload-rce.py:212-246 - Writes the compiled shared library to the PostgreSQL data directory using lo_create, lo_put, and lo_export
drupal-postgres-preload-rce.py:256-264 - Modifies postgresql.auto.conf to set session_preload_libraries and dynamic_library_path, then reloads configuration
drupal-postgres-preload-rce.py:267-279drupal-postgres-preload-rce.py:330-331 - Triggers a new PostgreSQL backend to load the preload library and execute the command, then reads output via pg_read_file
drupal-postgres-preload-rce.py:334-345 - Restores original postgresql.auto.conf settings after exploitation
drupal-postgres-preload-rce.py:348-352
Behaviors behind the backdoor verdict
Observables
- Exploit Behavior
- Payload withheldThis is the expected behavior of a PoC for the described CVE. The command is provided by the user at runtime and is not hardcoded.
drupal-postgres-preload-rce.py:294-356 - Command Execution
- Payload withheldThis is the RCE mechanism of the exploit. The command is not fixed; it is passed as a command-line argument.
drupal-postgres-preload-rce.py:212-226 - Cleanup Behavior
- Payload withheldThis indicates an attempt to clean up after exploitation, not to establish persistence.
drupal-postgres-preload-rce.py:348-352
What the analysis did not establish
- Only three of eight repository files were provided as text; five files (docker-compose.yml, Dockerfile, entrypoint.sh, seed-content.php, and one other) are omitted, so the full lab setup and auxiliary scripts are not visible.
- The analysis is based solely on static source code review; the exploit was not executed, and its runtime behavior is inferred from the code and documentation.
- 5 unclassified files (binary or non-text) were present in the repository but not analyzed; their content is unknown.
- The review is limited to the supplied text evidence and does not include dynamic analysis or execution of the code.
This review is limited to the supplied PoC code and context. It does not assert that the code works or is safe to execute.