Skip to content

Update dependency composer/composer to ^2.9.3 [SECURITY]#54

Open
renovate[bot] wants to merge 1 commit into1.4.xfrom
renovate/packagist-composer-composer-vulnerability
Open

Update dependency composer/composer to ^2.9.3 [SECURITY]#54
renovate[bot] wants to merge 1 commit into1.4.xfrom
renovate/packagist-composer-composer-vulnerability

Conversation

@renovate
Copy link
Contributor

@renovate renovate bot commented Aug 6, 2024

This PR contains the following updates:

Package Change Age Adoption Passing Confidence
composer/composer (source) ^2.7.0^2.9.3 age adoption passing confidence

GitHub Vulnerability Alerts

CVE-2024-35241

Impact

The status, reinstall and remove commands with packages installed from source via git containing specially crafted branch names in the repository can be used to execute code.

Patches

2.2.24 for 2.2 LTS or 2.7.7 for mainline

Workarounds

Avoid installing dependencies via git by using --prefer-dist or the preferred-install: dist config setting.

CVE-2024-35242

Impact

The composer install command running inside a git/hg repository which has specially crafted branch names can lead to command injection. So this requires cloning untrusted repositories.

Patches

2.2.24 for 2.2 LTS or 2.7.7 for mainline

Workarounds

Avoid cloning potentially compromised repositories.

CVE-2025-67746

Impact

Attackers controlling remote sources that Composer downloads from might in some way inject ANSI control characters in the terminal output of various Composer commands, causing mangled output and potentially leading to confusion or DoS of the terminal application.

There is no proven exploit and this has thus a low severity but Composer still published a CVE as it has potential for abuse, and Composer wants to be on the safe side informing users that they should upgrade.

Patches

2.2.26 for 2.2 LTS or 2.9.3 for mainline.


Release Notes

composer/composer (composer/composer)

v2.9.3

Compare Source

  • Security: Fixed ANSI sequence injection (GHSA-59pp-r3rg-353g / CVE-2025-67746)
    • Fixed COMPOSER_NO_SECURITY_BLOCKING env var not being respected for updates done via the install command, and added --no-security-blocking flag to install as well (#​12677)
    • Fixed update --lock / update mirrors not working when locked packages contain vulnerabilities (#​12645)
    • Fixed client-certificate authentication implementation (#​12667)
    • Fixed php-ext schema not being validated in ValidatingArrayLoader (#​12694)
    • Fixed crash when --bump-after-update is used and the lock file is disabled (#​12660)
    • Fixed support for SecureTransport + LibreSSL on macOS (#​12615)
    • Fixed display of reasons for why advisories are ignored (#​12668)
    • Fixed compatibility issues when git has log.showSignature enabled (#​12666)
    • Fixed curl downloader not retrying when a timeout (err 28) failure occurs (#​12662)
    • Fixed EventDispatcher requiring a full Composer instance to function (#​12629)

v2.9.2

Compare Source

  • Added new --no-security-blocking flag to disable/configure security blocking (#​12617)
    • Added a way to set audit > ignore to act only on audits or only on security blocking (#​12618, #​12612)
    • Fixed config command not being able to set the new audit settings (#​12609)
    • Fixed handling audit.ignore to support CVE ids while doing security blocking, but advisory IDs are still preferred for performance reasons (#​12624)
    • Fixed partial updates failing when another package in the lock file has a known security advisory (#​12626)

v2.9.1

Compare Source

  • Fixed regression in phpunit binary proxies (#​12601)
    • Fixed script handler autoloading issues (#​12606)
    • Fixed null call of Command::setDescription in some cases (#​12605)
    • Fixed --prefer-lowest builds sometimes failing due to the filtering of versions with known vulnerabilities (#​12603)

v2.9.0

Compare Source

  • Fixed a couple minor issues with --bump-after-update (#​12598)
    • Various docs fixes

v2.8.12

Compare Source

  • Fixed json schema issues with version validation (#​12512)
    • Fixed PHP 8.5 deprecation warnings (#​12513)
    • Fixed support for Bitbucket API tokens (#​12515)
    • Fixed handling of spaces in paths when using binaries (#​12524)
    • Fixed config --global path resolution issue (#​12537)
    • Reduced peak memory usage while loading packages (#​12516)
    • Dropped react/promise 2.x support

v2.8.11

Compare Source

  • Fixed PHP 8.5 deprecation warnings (#​12504, #​12493, #​12505)
    • Fixed bump command handling of 0.x versions (#​12468)
    • Fixed psr-4 warnings being shown in some cases when using symlinked directories (#​12480)
    • Fixed audit command failing hard if any advisory constraint was invalid (#​12507)

v2.8.10

Compare Source

  • Fixed plugins appearing loaded despite not being loaded yet in some edge cases (#​12442)
    • Fixed forward compatibility with Symfony 7.4 (#​12445)
    • Fixed deprecation warning on PHP 8.4 when platform check fails (#​12453)
    • Fixed support for new planner role in GitLab (#​12426)
    • Fixed Bitbucket regression introduced in 2.8.0 (#​12462)
    • Fixed json schema issues with version validation (#​12438)
    • Fixed git prompt breaking some systems (#​12437)
    • Fixed warning on PHP 8.5 when curl is not loaded (#​12472)

v2.8.9

Compare Source

  • Fixed json schema issues with version validation (#​12376)
    • Fixed bump-after-update triggering after an update --lock, which makes no sense (#​12371)
    • Fixed zip bomb false positives when unpacking using ZipArchive (#​12409)
    • Fixed creation of empty archives (#​12408)
    • Removed output of script being run when running via composer <script-name> (#​12383)

v2.8.8

Compare Source

  • Fixed json schema issues with version validation (#​12367)
    • Fixed issues running on 32bit machines (#​12365)

v2.8.7

Compare Source

  • Bumped justinrainbow/json-schema dependency to 6.x (#​12348)
    • Added COMPOSER_MAX_PARALLEL_PROCESS env var to control max amount of parallel processes Composer will start (#​12356)
    • Added zstd/brotli presence in diagnose command output
    • Fixed error handler to avoid spamming deprecation notices (#​12360)
    • Fixed InstalledVersions returning duplicate data at Composer runtime (#​12225)
    • Fixed handling of --with ... constraints to make them apply to packages replaced a package with a different name (#​12353)
    • Fixed deprecation warnings showing up in IDE code inspections within the vendor dir (#​12331)
    • Fixed a few json schema completeness issues (#​12332, #​12321)
    • Fixed issue autoloading files with a .phar inside the path (#​12326)

v2.8.6

Compare Source

  • Added COMPOSER_WITH_DEPENDENCIES and COMPOSER_WITH_ALL_DEPENDENCIES env vars to enable the --with[-all]-dependencies flags (#​12289)
    • Added COMPOSER_SKIP_SCRIPTS env var to tell Composer to skip certain script handlers by script names (comma separated) (#​12290)
    • Added error hint when Avast is detected together with curl certificate errors (#​9894)
    • Fixed handling of backslash in folder names when creating archives (#​12327)
    • Fixed detection of containerd for containers to avoid warning about root usage (#​12299)

v2.8.5

Compare Source

  • Added build provenance attestation so you can also now download and verify phar files from GitHub releases:

      gh release --repo composer/composer download --pattern composer.phar
      gh attestation verify --repo composer/composer composer.phar
    
    • Fixed unsupported funding values causing parse errors in packages (#​12247)
    • Fixed support for a few newer funding formats (#​12257)
    • Fixed InstalledVersions regression from 2.8.4 when reload() is used (#​12269)
    • Fixed psr-0/psr-4 rules having unstable order in vendor/composer/autoload*.php (#​12263)
    • Fixed a few warnings happening incorrectly in edge cases (#​12284, #​12268, #​12283)

v2.8.4

Compare Source

  • Fixed exit code of the audit command not being meaningful (now 1 for vulnerabilities and 2 for abandoned, 3 for both) (#​12203)
    • Fixed issue on plugin upgrade when it defines multiple classes (#​12226)
    • Fixed duplicate errors appearing in the output depending on php settings (#​12214)
    • Fixed InstalledVersions returning duplicate data in some instances (#​12225)
    • Fixed installed.php sorting to be deterministic (#​12197)
    • Fixed bump-after-update failing when using inline constraints (#​12223)
    • Fixed create-project command to now disable symlinking when used with a path repo as argument (#​12222)
    • Fixed validate --no-check-publish to hide publish errors entirely as they are irrelevant (#​12196)
    • Fixed audit command returning a failing code when composer audit fails as this should not trigger build failures, but running audit as standard part of your build is probably a terrible idea anyway (#​12196)
    • Fixed curl usage to disable multiplexing on broken versions when proxies are in use (#​12207)

v2.8.3

Compare Source

  • Fixed windows handling of process discovery (#​12180)
    • Fixed react/promise requirement to allow 2.x installs again (#​12188)
    • Fixed some issues when lock:false is set in require and bump commands

v2.8.2

Compare Source

  • Fixed crash while suggesting providers if they have no description (#​12152)
    • Fixed issues creating lock files violating the schema in some circumstances (#​12149)
    • Fixed create-project regression in 2.8.1 when using path repos with relative paths (#​12150)
    • Fixed ctrl-C aborts not working inside text prompts (#​12106)
    • Fixed git failing silently when git cannot read a repo due to ownership violations (#​12178)
    • Fixed handling of signals in non-PHP binaries run via proxies (#​12176)

v2.8.1

Compare Source

  • Fixed json schema issues with version validation (#​12512)
    • Fixed PHP 8.5 deprecation warnings (#​12513)
    • Fixed support for Bitbucket API tokens (#​12515)
    • Fixed handling of spaces in paths when using binaries (#​12524)
    • Fixed config --global path resolution issue (#​12537)
    • Reduced peak memory usage while loading packages (#​12516)
    • Dropped react/promise 2.x support

v2.8.0

Compare Source

  • BC Warning: Fixed https_proxy env var falling back to http_proxy's value. The fallback and warning have now been removed per the 2.7.3 release notes (#​11938, #​11915)
    • Added --patch-only flag to the update command to restrict updates to patch versions and make an update of all deps safer (#​12122)
    • Added --abandoned flag to the audit command to configure how abandoned packages should be treated, overriding the audit.abandoned config setting (#​12091)
    • Added --ignore-severity flag to the audit command to ignore one or more advisory severities (#​12132)
    • Added --bump-after-update flag to the update command to run bump after the update is done (#​11942)
    • Added a way to control which scripts receive additional CLI arguments and where they appear in the command, see the docs (#​12086)
    • Added allow-missing-requirements config setting to skip the error when the lock file is not fulfilling the composer.json's dependencies (#​11966)
    • Added a JSON schema for the composer.lock file (#​12123)
    • Added better support for Bitbucket app passwords when cloning repos / installing from source (#​12103)
    • Added --type flag to filter packages by type(s) in the reinstall command (#​12114)
    • Added --strict-ambiguous flag to the dump-autoload command to make it return with an error code if duplicate classes are found (#​12119)
    • Added warning in dump-autoload when vendor files have been deleted (#​12139)
    • Added warnings for each missing platform package when running create-project to avoid having to run it again and again (#​12120)
    • Added sorting of packages in allow-plugins when sort-packages is enabled (#​11348)
    • Added suggestion of provider packages / polyfills when an ext or lib package is missing (#​12113)
    • Improved interactive package update selection by first outputting all packages and their possible updates (#​11990)
    • Improved dependency resolution failure output by sorting the output in a deterministic and (often) more logical way (#​12111)
    • Fixed PHP 8.4 deprecation warnings about E_STRICT (#​12116)
    • Fixed init command to validate the given license identifier (#​12115)
    • Fixed version guessing to be more deterministic on feature branches if it appears that it could come from either of two mainline branches (#​12129)
    • Fixed COMPOSER_ROOT_VERSION env var handling to treat 1.2 the same as 1.2.x-dev and not 1.2.0 (#​12109)
    • Fixed require command skipping new stability flags from the lock file, causing invalid lock file diffs (#​12112)
    • Fixed php://stdin potentially being open several times when running Composer programmatically (#​12107)
    • Fixed handling of platform packages in why-not command and partial updates (#​12110)
    • Reverted "Fixed transport-options.ssl for local cert authorization being stored in lock file making them less portable (#​12019)" from 2.7.8 as it was broken

v2.7.9

Compare Source

  • Fixed Docker detection breaking on constrained environments (#​12095)
    • Fixed upstream issue in bash completion script, it is recommended to update it using the completion command (#​12015)

v2.7.8

Compare Source

  • Added release-age, release-date and latest-release-date in the JSON output of outdated (#​12053)
    • Fixed PHP 8.4 deprecation warnings
    • Fixed addressability of branches containing # signs (#​12042)
    • Fixed bump command not handling some ~ constraints correctly (#​12038)
    • Fixed COMPOSER_AUTH not taking precedence over ./auth.json (#​12084)
    • Fixed relative: true sometimes not being respected in path repo symlinks (#​12092)
    • Fixed copy from cache sometimes failing on VirtualBox shared folders (#​12057)
    • Fixed PSR-4 autoloading order regression in some edge case (#​12063)
    • Fixed duplicate lib-* packages causing issues when having pecl + core versions of the same PHP extension (#​12093)
    • Fixed transport-options.ssl for local cert authorization being stored in lock file making them less portable (#​12019)
    • Fixed memory issues when installing large binaries (#​12032)
    • Fixed archive command crashing when a path cannot be realpath'd on windows (#​11544)
    • API: Deprecated BasePackage::$stabilities in favor of BasePackage::STABILITIES (685add7)
    • Improved Docker detection (#​12062)

v2.7.7

Compare Source

  • Security: Fixed command injection via malicious git branch name (GHSA-47f6-5gq3-vx9c / CVE-2024-35241)
    • Security: Fixed multiple command injections via malicious git/hg branch names (GHSA-v9qv-c7wm-wgmf / CVE-2024-35242)
    • Security: Fixed secure-http checks that could be bypassed by using malformed URL formats (fa3b958)
    • Security: Fixed Filesystem::isLocalPath including windows-specific checks on linux (3c37a67)
    • Security: Fixed perforce argument escaping (3773f77)
    • Security: Fixed handling of zip bombs when extracting archives (de5f7e3)
    • Security: Fixed Windows command parameter escaping to prevent abuse of unicode characters with best fit encoding conversion (3130a74, 04a63b3)
    • Fixed PSR violations for classes not matching the namespace of a rule being hidden, this may lead to new violations being shown (#​11957)
    • Fixed UX when a plugin is still in vendor dir but is not required nor allowed anymore after changing branches (#​12000)
    • Fixed new platform requirements from composer.json not being checked if the lock file is outdated (#​12001)
    • Fixed ability for config command to remove autoload keys (#​11967)
    • Fixed empty type support in init command (#​11999)
    • Fixed git clone errors when safe.bareRepository is set to strict in the git config (#​11969)
    • Fixed regression showing network errors on PHP <8.1 (#​11974)
    • Fixed some color bleed from a few warnings (#​11972)

v2.7.6

Compare Source

  • Fixed regression when script handlers add an autoloader which uses a private callback (#​11960)

v2.7.5

Compare Source

  • Added uninstall alias to remove command (#​11951)
    • Added workaround for broken curl versions 8.7.0/8.7.1 causing transport exceptions (#​11913)
    • Fixed root usage warnings showing up within Podman containers (#​11946)
    • Fixed config command not handling objects correctly in some conditions (#​11945)
    • Fixed binary proxies not containing the correct path if the project dir is a symlink (#​11947)
    • Fixed Composer autoloader being overruled by project autoloaders when they are loaded by event handlers (scripts/plugins) (#​11955)
    • Fixed TransportException (http failures) not having a distinct exit code, should now exit with 100 as code (#​11954)

v2.7.4

Compare Source

  • Fixed regression (Call to undefined method ProxyManager::needsTransitionWarning()) with projects requiring composer/composer in an pre-2.7.3 version (#​11943, #​11940)

v2.7.3

Compare Source

  • Fixed regression (Call to undefined method ProxyManager::needsTransitionWarning()) with projects requiring composer/composer in an pre-2.7.3 version (#​11943, #​11940)

v2.7.2

Compare Source

  • Added info about the PHP version when running composer --version (#​11866)
    • Added warning when the root version cannot be detected (#​11858)
    • Fixed plugins still being enabled in a few contexts when running as root (c3efff9)
    • Fixed outdated --ignore ... still attempting to load the latest version of the ignored packages (#​11863)
    • Fixed handling of broken symlinks in the middle of an install path (#​11864)
    • Fixed update --lock still incorrectly updating some metadata (#​11850, #​11787)

v2.7.1

Compare Source

  • Added several warnings when plugins are disabled to hint at common problems people had with 2.7.0 (#​11842)
    • Fixed diagnose auditing of Composer dependencies failing when running from the phar

Configuration

📅 Schedule: Branch creation - "" in timezone UTC, Automerge - At any time (no schedule defined).

🚦 Automerge: Disabled by config. Please merge this manually once you are satisfied.

Rebasing: Whenever PR is behind base branch, or you tick the rebase/retry checkbox.

🔕 Ignore: Close this PR and you won't be reminded about this update again.


  • If you want to rebase/retry this PR, check this box

Read more information about the use of Renovate Bot within Laminas.

@renovate renovate bot force-pushed the renovate/packagist-composer-composer-vulnerability branch from 28783b2 to 4ffb616 Compare August 10, 2025 14:54
@renovate renovate bot force-pushed the renovate/packagist-composer-composer-vulnerability branch from 4ffb616 to 168200d Compare October 15, 2025 12:56
@renovate renovate bot force-pushed the renovate/packagist-composer-composer-vulnerability branch from 168200d to 70d1ba8 Compare December 15, 2025 16:51
@renovate renovate bot force-pushed the renovate/packagist-composer-composer-vulnerability branch 2 times, most recently from dd35383 to 19a4de0 Compare December 30, 2025 22:35
@renovate renovate bot changed the title Update dependency composer/composer to ^2.7.7 [SECURITY] Update dependency composer/composer to ^2.9.3 [SECURITY] Dec 30, 2025
@renovate renovate bot force-pushed the renovate/packagist-composer-composer-vulnerability branch from 19a4de0 to 7bea1bb Compare December 31, 2025 14:33
@renovate renovate bot force-pushed the renovate/packagist-composer-composer-vulnerability branch from 7bea1bb to 312d991 Compare January 8, 2026 18:58
@renovate renovate bot force-pushed the renovate/packagist-composer-composer-vulnerability branch from 312d991 to d1535b0 Compare February 2, 2026 16:57
| datasource | package           | from  | to    |
| ---------- | ----------------- | ----- | ----- |
| packagist  | composer/composer | 2.7.0 | 2.9.3 |


Signed-off-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
@renovate renovate bot force-pushed the renovate/packagist-composer-composer-vulnerability branch from d1535b0 to a7dcfef Compare March 13, 2026 16:08
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

0 participants