Vulnerability · CVE-2026-119193
Merge pull request #833 from sebastianbergmann/CVE-2026-119193
Published Oct 29, 2026 · catalog updated Oct 30, 2026 · PHP Packagist
Last checked Nov 6, 2026. A connected source was read within the last 7 days.
Check if you run it
No confirmed exploitation is on record for CVE-2026-119193. EPSS is 0.11%. Act only if a listed version of PHP Packagist is installed.
Gaps on this record
- No vendor fix or required action is stored. Compare the linked advisory before you change production.
Same product and reporting
- CVE-2026-109162 · Unknown
- CVE-2026-56092 · Unknown
- CVE-2026-56093 · Unknown
- CVE-2026-56094 · Unknown
- CVE-2026-56095 · Unknown
- Severity
- Medium5.4
- Known exploitation
- Not in CISA/VulnCheck KEV
- EPSS
- 0.11%
- Remediation
- Version ranges on file
- Affected products
- Packagist phpunit/phpunit · composer phpunit · composer phpunit/phpunit · stated phpunit · vendor sebastianbergmann phpunit
### Summary When PHPT tests are run with code coverage, PHPUnit 13.4.0 to 13.4.3 writes the code of each PHPT test to a directory with a fixed name below the operating system's path used for temporary files, for instance on Linux, and executes it from there. PHPUnit uses this directory even when it was created by another user. On a system where the path used for temporary files is shared between users, another local user can create this directory before the developer runs PHPUnit, replace the code of a PHPT test before it is executed, and thereby execute arbitrary code with the privileges of the developer. The test still passes and the code coverage report is complete, so the attack is not visible. The impact is full code execution as the user who runs PHPUnit. The likelihood is low: the attacker needs an account on the same system and must create the directory before the developer runs PHPT tests with code coverage. macOS and Windows use per-user temporary directories by default and are not affected in their default configuration. PHPUnit 12.5 and earlier are not affected. ### Details When code coverage is collected for a PHPT test, PHPUnit writes two temporary files: a file with the code of the PHPT test (the "job" file), which the child process executes, and a file, to which the child process writes the code coverage data it collected. Since PHPUnit 13.4.0, these files are created in a directory with a fixed name: * [ ](https://github.com/sebastianbergmann/phpunit/blob/13.4.3/src/Runner/Phpt/TestCase.php#L132-L143) returns * The [constructor](https://github.com/sebastianbergmann/phpunit/blob/13.4.3/src/Runner/Phpt/TestCase.php#L169-L174) names the files and in this directory Before a PHPT test is run with code coverage, this directory is [created using ](https://github.com/sebastianbergmann/phpunit/blob/13.4.3/src/Runner/Phpt/TestCase.php#L319). [ ](https://github.com/sebastianbergmann/phpunit/blob/13.4.3/src/Util/Filesystem.php#L27-L30) returns when the director
Are you affected?
Enter the version you run. The result uses only the ranges stored on this record.
The check returns affected, not affected, or incomplete. It does not guess a version that is missing from the record.
- Packagist phpunit/phpunit13.4.0 → 13.4.4
- composer phpunitversion unspecified
- composer phpunit/phpunit>= 13.4.0, < 13.4.4
- stated phpunit<= 12.5
- vendor sebastianbergmann phpunitversion unspecified
How to fix CVE-2026-119193
Upgrade
CVE-2026-119193 lists a fix boundary at 13.4.4. Compare the installed build with that boundary before you change production.
Version check
Affected < 13.4.4
Advisory
Open the cve_org record and follow its fix.
Official advisories
What to do
Three questions, each answered from this record only. Confirm the vendor advisory before you patch.
Should you patch?
No confirmed exploitation is on record for CVE-2026-119193. EPSS is 0.11%. Act only if a listed version of PHP Packagist is installed.
Which versions are affected?
Compare what you have installed with 13.4.0 → 13.4.4, >= 13.4.0, < 13.4.4, <= 12.5. Compare the installed version with the linked vendor advisory before you change production.
What should an analyst verify?
CWE-379. EPSS 0.11%. There is no CISA KEV listing. No Exploit-DB or Metasploit reference is linked. Use the source links for the original advisory.
Code
The project this record applies to. Exploit listings stay in References.
Timeline
Detection, updates, and resolution for this record.
Oct 30, 2026 · PHP Security Advisories
Detected
Merge pull request #833 from sebastianbergmann/CVE-2026-119193 Assign CVE-2026-119193 to GHSA-9vw2-f4vp-x7gf
Oct 30, 2026 · CVE.org
Updated
PHPUnit is a testing framework for PHP. From 13.4.0 until 13.4.4, the TestCase::coverageFilesDirectory() logic in src/Runner/Phpt/TestCase.php creates temporary files for PHPT code coverage in a predictable phpunit-phpt directory under sys_get_temp_dir() and reuses that directory without verifying its ownership or permissions. On multi-user systems with a shared temporary path, a local attacker wh
Oct 30, 2026 · GitHub Advisory Database
Fix available
phpunit/phpunit fixed in 13.4.4
Oct 30, 2026 · GitHub Advisory Database
Fix available
phpunit/phpunit fixed in 13.4.4
Oct 30, 2026 · GitHub Advisory Database
Updated
### Summary When PHPT tests are run with code coverage, PHPUnit 13.4.0 to 13.4.3 writes the code of each PHPT test to a directory with a fixed name below the operating system's path used for temporary files, for instance on Linux, and executes it from there. PHPUnit uses this directory even when it was created by another user. On a system where the path used for temporary files is shared between u
Sources
- CVE.orgVulnerability recordCVE-2026-119193
PHPUnit is a testing framework for PHP. From 13.4.0 until 13.4.4, the TestCase::coverageFilesDirectory() logic in src/Runner/Phpt/TestCase.php creates temporary files for PHPT code coverage in a predictable phpunit-phpt directory under sys_get_temp_dir() and reuses that directory
cve.org - FIRST EPSSExploitation probabilityCVE-2026-119193
30-day exploitation probability 0.11%
first.org - GitHub Advisory DatabasePackage advisoryGHSA-9vw2-f4vp-x7gf
PHPUnit vulnerable to code execution by other local users via shared temporary directory in PHPT code coverage handling
github.com - GitLab Advisory DatabasePackage advisoryCVE-2026-119193
When PHPT tests are run with code coverage, PHPUnit 13.4.0 to 13.4.3 writes the code of each PHPT test to a directory with a fixed name below the operating system's path used for temporary files, for instance /tmp/phpunit-phpt on Linux, and executes it from there. PHPUnit uses this directory even when it was created by another user. On a system where the path used for temporary files is shared bet
advisories.gitlab.com - OpenSSF OSV / OSV ScannerPackage advisoryGHSA-9vw2-f4vp-x7gf
PHPUnit vulnerable to code execution by other local users via shared temporary directory in PHPT code coverage handling
osv.dev - PHP Security AdvisoriesVendor advisoryCVE-2026-119193
Merge pull request #833 from sebastianbergmann/CVE-2026-119193 Assign CVE-2026-119193 to GHSA-9vw2-f4vp-x7gf
github.com
References
- WEB · github.com
- GitHub reference · github.com
- PACKAGE · github.com
- https://github.com/sebastianbergmann/phpunit/commit/ae31c78a86e9d6c641497bacf474 · github.com
- https://github.com/sebastianbergmann/phpunit/releases/tag/13.4.4 · github.com
- https://github.com/sebastianbergmann/phpunit/security/advisories/GHSA-9vw2-f4vp- · github.com
- ADVISORY · nvd.nist.gov
Freshness
Last verified in this catalog Nov 5, 2026. Significant claims (KEV, EPSS, CVSS, affected ranges) come from the source rows above — open the original publisher for the authoritative advisory.
- GitHub Advisory DatabaseNov 6, 2026
- PHP Security AdvisoriesNov 6, 2026
- FIRST EPSSNov 5, 2026
- GitLab Advisory DatabaseNov 3, 2026
- OpenSSF OSV / OSV ScannerNov 2, 2026
- CVE.orgOct 30, 2026