PDO\Sqlite::loadExtension loads arbitrary shared objects
Ouverte
@SakiTakamachi y travaille déjà.
Depuis le 13/5/2026.
Bug
Extension: pdo_sqlite
Status: Needs Triage
- Langage dominant
- C
- Étoiles
- 40.4k
- Forks
- 8.1k
- Merge moyen
- 2 j 13 h
- PR mergées (30 j)
- 96
Description
Description
Unlike SQLite3::loadExtension, Pdo\Sqlite::loadExtension does not check sqlite3.extension_dir and calls sqlite3_load_extension with the absolute path to the extension parameter. This allows executing native code from PHP code subject to open_basedir / disable_functions (which are not security boundaries anyway).
I'll open a PR with my patch later this week. It introduces a similar check to SQLite3::loadExtension and restricts extension loading to a trusted directory (sqlite3.extension_dir) set in advance.
PHP Version
PHP 8.6.0-dev (cli) (built: May 10 2026 23:58:07) (NTS)
Copyright © The PHP Group and Contributors
Zend Engine v4.6.0-dev, Copyright © Zend by Perforce
with Zend OPcache v8.6.0-dev, Copyright ©, by Zend by Perforce
Operating System
No response
Guide de contribution
Ouvrir le guide de contribution
Par où commencer
- Lisez l'issue en entier, puis le guide de contribution du projet.
- Signalez en commentaire que vous la prenez — cela évite que deux personnes fassent le même travail.
- Forkez le dépôt et travaillez sur une branche.
- Ouvrez une pull request qui référence le numéro de l'issue.
Évaluation
Cette issue n'a pas encore été évaluée.