CTIPilot
AI-generated · no human review · verify critical claims against the linked source. how it works →

PHP Composer

product · product:php-composer single-source

Coverage
1
first 2026-05-15 → last 2026-10-21
Latest activity
2026-05-15
Composer printed GitHub Actions tokens into CI logs once GitHub's new token format arrived; fixed in 2.9.8…
Peak priority
notable
1 notable
Targets
technology
sectors: technology
Sources cited
3
3 hosts

Defender insights

What each entry about PHP Composer tells a defender to do, newest first.

2026-05-15NOTABLEComposer printed GitHub Actions tokens into CI logs once GitHub's new token format arrived; fixed in 2.9.8 and 2.2.28

Exposure · detection

Story timeline

  1. 2026-05-15CVE-2026-45793, PHP Composer: GitHub Actions and GitHub App installation tokens printed in full to CI job logs when GitHub's new token format failed validation (CVSS 7.5)
    trending-vulnerabilitiesComposer printed GitHub Actions tokens into CI logs once GitHub's new token format arrived; fixed in 2.9.8 and 2.2.28

Hunting pivots

Releases covered
PHP Composer
ATT&CK techniques (2 across 1 tactic)

2 techniques observed across 1 entry about this entity, derived from entry metadata and body evidence, never asserted without a published entry behind it · pinned to MITRE ATT&CK v20.0 · compare on the matrix · Navigator layer (JSON)

  • Credential AccessSteal Application Access Token · Unsecured Credentials: Credentials In Files

Credential Access TA0006

T1528Steal Application Access Token×1

Adversaries can steal application access tokens as a means of acquiring credentials to access remote systems and resources.

Evidence: 2026-05-15/cve-2026-45793-php-composer-github-actions-ci-token-disclosu · ATT&CK page ↗

T1552.001Unsecured Credentials: Credentials In Files×1

Adversaries may search local file systems and remote file shares for files containing insecurely stored credentials. These can be files created by users to store their own credentials, shared credential stores for a group of individuals, configuration files containing passwords for a system or service, or source code/binary files containing embedded passwords.

Evidence: 2026-05-15/cve-2026-45793-php-composer-github-actions-ci-token-disclosu · ATT&CK page ↗

Entries about PHP Composer (1)

2026-05-15 · view entry permalink →

NOTABLECVE-2026-45793updatedNATOA2

CVE-2026-45793, PHP Composer: GitHub Actions and GitHub App installation tokens printed in full to CI job logs when GitHub's new token format failed validation (CVSS 7.5)

Composer validates configured GitHub tokens against an allowed character set in Composer\IO\BaseIO::loadConfiguration(); GitHub's new structured format for GitHub App installation tokens contains a hyphen, fails that check, and the resulting exception prints the full token to stderr, which CI captures in the job log, while GitHub Actions' secret masker may not redact it because the message is wrapped or framed (Packagist, 2026-05-13). Any workflow that configures a GitHub App installation token, including the auto-injected GITHUB_TOKEN, into Composer's auth and then runs any Composer command hits it, and actions such as shivammathur/setup-php register GITHUB_TOKEN automatically, so no unusual configuration is needed (Packagist, 2026-05-13). The advisory's header rates CVE-2026-45793 High 7.5 while its own text calls the severity medium, and it lists Composer from 2.3.0 before 2.9.8, from 2.0.0 before 2.2.28 and from 1.0 before 1.10.28 as affected, fixed in 2.9.8, 2.2.28 and 1.10.28 (Composer, 2026-05-13). CISA's Known Exploited Vulnerabilities catalogue did not list it as of 2026-10-21 (CISA KEV catalog, 2026-10-21).

The exposure window depends on the token: a hosted-runner GITHUB_TOKEN expires when the job ends or after six hours, and the error usually fails the job and expires it at once; on self-hosted runners it can stay valid for up to 24 hours after issuance; and tokens from actions/create-github-app-token or another GitHub App last up to an hour by default and can carry permissions broader than the workflow's own permissions: declaration (Packagist, 2026-05-13). GitHub rolled back the token change on 2026-05-13 at 14:30 UTC and planned to restart the rollout on 2026-05-18 after 14:00 UTC (Packagist, 2026-05-13).

The new format fails Composer’s validation, leading to an error message that exposes the full token contents to stderr.

Any workflow that configures a GitHub App installation token (including the workflow's auto-injected GITHUB_TOKEN) into Composer's auth and then runs any Composer command will hit it.

Usually the error leaking the token will also fail the job and immediately expire the token.

Packagist 2026-05-13
Correctionrun 2026-10-21T1148Z-auditaffected_productsbodyclassificationcvesentitiesevidenceheadlinekindsourcessourcing_notesummarytagstechniquestitle

The leak was not tied to package-resolution errors: GitHub's new format for GitHub App installation tokens contains a hyphen, fails Composer's character validation when its configuration loads, and the exception prints the full token to stderr, so any workflow with such a token in Composer's auth hit it on the default path, including the auto-injected GITHUB_TOKEN (Packagist, 2026-05-13). Classic ghp_ personal access tokens are not affected by the validation bug itself, though the advisory notes the same leak applies to any future credential that fails validation (Composer, 2026-05-13). Packagist's relevant permission point is that App tokens can carry permissions broader than the workflow's own permissions: declaration, not that every GITHUB_TOKEN can write workflow files (Packagist, 2026-05-13).

The exposure was bounded: hosted-runner tokens usually expired with the failing job, self-hosted runner tokens stay valid for up to 24 hours and App tokens for up to an hour, and GitHub rolled the format change back on 2026-05-13 before planning a new rollout from 2026-05-18 (Packagist, 2026-05-13). Neither the Packagist post nor the advisory mentions Mini Shai-Hulud or exploitation; the advisory rates the flaw High 7.5, fixed in 2.9.8, 2.2.28 and 1.10.28 (Composer, 2026-05-13).

vulnerability15 May 05:00Zsingle-sourceOpen finding →

Co-occurring entities

Derived: referenced by the same focused operational entries (weekly summaries and report roundups don't count); ×N counts the shared entries.

Where this entity is cited

  • Vulns1

Source distribution

  • blog.packagist.com1 (33%)
  • cisa.gov1 (33%)
  • github.com1 (33%)