Vulnerabilities

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

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

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.

  1. 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

  2. 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

  3. Oct 30, 2026 · GitHub Advisory Database

    Fix available

    phpunit/phpunit fixed in 13.4.4

  4. Oct 30, 2026 · GitHub Advisory Database

    Fix available

    phpunit/phpunit fixed in 13.4.4

  5. 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

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