Update dependency squizlabs/php_codesniffer to v4 [SECURITY] - #15
Open
renovate[bot] wants to merge 1 commit into
Open
Update dependency squizlabs/php_codesniffer to v4 [SECURITY]#15renovate[bot] wants to merge 1 commit into
renovate[bot] wants to merge 1 commit into
Conversation
renovate
Bot
force-pushed
the
renovate/packagist-squizlabs-php_codesniffer-vulnerability
branch
from
August 15, 2026 11:37
8a7e937 to
24eb123
Compare
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
This PR contains the following updates:
~2.6→~4.0PHP_CodeSniffer gitblame report command injection via crafted filename
CVE-2026-67434 / GHSA-hmqg-cxww-wqhq
More information
Details
Impact
PHP_CodeSniffer versions before v3.13.6 and v4.0.2 contain a command injection vulnerability in the code creating the
Gitblame,HgblameandSvnblamereport(s).As a result, running PHP_CodeSniffer over untrusted files, for example, in a CI pipeline that scans pull requests, or on a developer machine reviewing third-party code, could result in attacker-controlled shell commands being executed when the
Gitblame,HgblameorSvnblamereport(s) would process a file whose name contains shell metacharacters.Fullreport, or any of the other non-*blame reports, are not affected."and;, are not affected.Patched versions
The issue has been fixed in PHP_CodeSniffer v3.13.6 and v4.0.2. We recommend all users upgrade to these versions at their earliest convenience.
Workaround
Users of PHP_CodeSniffer who cannot upgrade immediately should ensure they do not use the
Gitblame,Hgblameor theSvnblamereports when scanning untrusted code.This is especially relevant for CI jobs, pre-commit or review tooling, automated review services, and any service that scans untrusted repositories or uploaded source trees.
Credits
Many thanks to both @Faze-up and @edorian for responsibly disclosing this vulnerability.
How can I report a security bug?
Please report security vulnerabilities privately via the "Security and quality" tab on the PHP_CodeSniffer repository.
Severity
CVSS:4.0/AV:L/AC:L/AT:P/PR:N/UI:P/VC:H/VI:H/VA:H/SC:N/SI:N/SA:NReferences
This data is provided by the GitHub Advisory Database (CC-BY 4.0).
Release Notes
PHPCSStandards/PHP_CodeSniffer (squizlabs/php_codesniffer)
v4.0.4: - 2026-08-06Compare Source
The 4.0.2 release, the 4.0.3 and the 4.0.4 release are 100% the same (aside from the version number), there was just a slight snafu in the release publication on GitHub (missing PHAR assets). Sorry for the confusion.
v4.0.2: - 2026-08-06Compare Source
This is a security release and all users are advised to update their install(s) as soon as possible.
The security issue only affects users of the
Gitblame,HgblameorSvnblamereport(s).Added
(void)cast. #1325The
T_VOID_CASTtoken has been added to theTokens::CAST_TOKENSarray.suggestsection to thecomposer.jsonfile to inform users about the recommendediconvandpcntlPHP extensions. #1388Changed
libxmlis a required PHP extension. #1409$thisin static closures. #1377WrongOpener*) has been made more informative. #1358. Fixes #1322.PEAR.Functions.FunctionDeclaration#1445CloseBracketLineerror message now exposes 1 data value (previously 0).EmptyLineerror message now exposes 1 data value (previously 0).Indenterror message now exposes 3 data values (previously 2).PSR12.Classes.AnonClassDeclarationandSquiz.Functions.MultiLineFunctionDeclarationsniffs.PSR2.Classes.ClassDeclaration#1446ExtendsLineandImplementsLineerror messages now expose 3 data values (previously 1).SpaceBeforeExtendsandSpaceBeforeImplementserror messages now expose 2 data values (previously 1).PSR12.Classes.AnonClassDeclarationandSquiz.Classes.ClassDeclarationsniffs.PSR2.ControlStructures.SwitchDeclaration#1447defaultNotLowerandcaseNotLowererror messages now expose 3 data values (previously 2).SpaceBeforeColonDEFAULTandSpaceBeforeColonCASEerror messages now expose 1 data value (previously 0).BodyOnNextLineDEFAULTandBodyOnNextLineCASEerror messages now expose 1 data value (previously 0).WrongOpenerdefaultandWrongOpenercaseerror messages now expose 1 data value (previously 0).Squiz.ControlStructures.SwitchDeclaration#1449CaseNotLowerandDefaultNotLowererror messages now expose 3 data values (previously 2).CaseIndentandDefaultIndenterror messages now expose 2 data values (previously 0).SpaceBeforeColonCaseandSpaceBeforeColonDefaulterror messages now expose 1 data value (previously 0).BreakIndenterror message now exposes 1 data value (previously 0).SpacingAfterCaseandSpacingAfterDefaulterror messages now expose 1 data value (previously 0).Squiz.Functions.FunctionDeclarationArgumentSpacing#1452SpaceBeforeEqualserror message now exposes 3 data values (previously 2).SpaceAfterEqualserror message now exposes 3 data values (previously 2).Squiz.Functions.MultiLineFunctionDeclaration#1453FirstParamSpacingandUseFirstParamSpacingerror messages now expose 1 data value (previously 0).OneParamPerLineandUseOneParamPerLineerror messages now expose 1 data value (previously 0).PSR12.Classes.AnonClassDeclarationsniff.Fixed
Gitblame,HgblameorSvnblamereport(s) would process a file whose name contains shell metacharacters. #1473Fullreport, or any of the other non-*blame reports, are not affected.$thisin non-static closures nested in OO methods.phpcbf.Squiz.Functions.MultiLineFunctionDeclarationsniff.Other
5CB4F77.New Contributors
The PHP_CodeSniffer project is happy to welcome the following new contributors:
@bigdevlarry, @Faze-up, @jrchamp, @lazerg, @morozov, @ntdiary, @SAY-5
Statistics
Closed: 10 issues
Merged: 33 pull requests
Follow @phpcs on Mastodon or @PHP_CodeSniffer on X to stay informed.
Please consider funding the PHP_CodeSniffer project. If you already do so: thank you!
v4.0.1: - 2025-11-10Compare Source
This release includes all improvements and bugfixes from PHP_CodeSniffer 3.13.5.
Added
Changed
Fixed
phpcs:ignorecomma-separated rule reference lists.phpcs:disable/phpcs:enableignore annotations.switch.case/defaultand "case breaking" statements.switchcase condition or after adefaultkeyword, was not regarded as a "scope_opener" for thecase/defaultbody.WrongOpenererror is now also auto-fixable if the wrong opener is a PHP close tag.New Contributors
The PHP_CodeSniffer project is happy to welcome the following new contributors:
@andrewnicols, @Soh1121
Statistics
Closed: 2 issues
Merged: 8 pull requests
Follow @phpcs on Mastodon or @PHP_CodeSniffer on X to stay informed.
Please consider funding the PHP_CodeSniffer project. If you already do so: thank you!
v4.0.0: - 2025-09-16Compare Source
This release contains breaking changes.
Upgrade guides for both ruleset maintainers/end-users, as well as for sniff developers and integrators, have been published to the Wiki.
You are strongly encouraged to read the upgrade guide applicable to your situation before upgrading.
This release includes all improvements and bugfixes from PHP_CodeSniffer 4.0.0-beta1, 4.0.0-RC1, 3.13.3 and 3.13.4.
Changed
exit/die/true/false/nullwill be tokenized as the keyword token and the token'content'will include the leading backslash. #1201^8.4.0 || ^9.3.4 || ^10.5.32 || 11.3.3 - 11.5.28 || ^11.5.31. #1247Fixed
phpcbfon code provided via STDIN.// phpcs:setfor inline array properties did not handle a single item array with the valuetrue,falseornullcorrectly.phpcbfin parallel mode.Other
masterbranch has been renamed to3.xand the default branch has changed to the4.xbranch.Statistics
Closed: 5 issues
Merged: 35 pull requests
Follow @phpcs on Mastodon or @PHP_CodeSniffer on X to stay informed.
Please consider funding the PHP_CodeSniffer project. If you already do so: thank you!
v3.13.6: - 2026-08-06Compare Source
This is a security release and all users are advised to update their install(s) as soon as possible.
Changed
Fixed
Gitblame,HgblameorSvnblamereport(s) would process a file whose name contains shell metacharacters. #1473Fullreport, or any of the other non-*blame reports, are not affected.Other
5CB4F77.Statistics
Closed: 0 issues
Merged: 46 pull requests
Follow @phpcs on Mastodon or @PHP_CodeSniffer on X to stay informed.
Please consider funding the PHP_CodeSniffer project. If you already do so: thank you!
v3.13.5: - 2025-11-04Compare Source
Added
Changed
Fixed
Other
masterbranch has been renamed to3.xand the default branch has changed to the4.xbranch.New Contributors
The PHP_CodeSniffer project is happy to welcome the following new contributors:
@andrewnicols
Statistics
Closed: 2 issues
Merged: 36 pull requests
Follow @phpcs on Mastodon or @PHP_CodeSniffer on X to stay informed.
Please consider funding the PHP_CodeSniffer project. If you already do so: thank you!
v3.13.4: - 2025-09-05Compare Source
Fixed
Statistics
Closed: 0 issues
Merged: 3 pull requests
If you like to stay informed about releases and more, follow @phpcs on Mastodon or @PHP_CodeSniffer on X.
Please consider funding the PHP_CodeSniffer project. If you already do so: thank you!
v3.13.3: - 2025-09-04Compare Source
Added
abstractproperties. #1183File::getMemberProperties()method now also supportsabstractproperties through a newis_abstractarray index in the return value. #1184abstractproperties:exit/dieis used as a fully qualified "function call", it will now be tokenized asT_NS_SEPARATOR+T_EXIT.Changed
true/false/nullwill now be tokenized asT_NS_SEPARATOR+T_TRUE/T_FALSE/T_NULL. #1201T_NS_SEPARATOR+T_STRING.WrongOpener*error code is now auto-fixable if the identified "wrong opener" is a semi-colon. #1161AbstractAfterVisibilityerror code.Fixed
--paralleloption fails if PHP_CodeSniffer is invoked via bash and the invokation creates a non-PHPCS-managed process.--parallelscanning was enabled.Other
Contributions welcome !
New Contributors
The PHP_CodeSniffer project is happy to welcome the following new contributors:
@benno5020, @NanoSector
Statistics
Closed: 11 issues
Merged: 40 pull requests
Follow @phpcs on Mastodon or @PHP_CodeSniffer on X to stay informed.
Please consider funding the PHP_CodeSniffer project. If you already do so: thank you!
v3.13.2: - 2025-06-18Compare Source
Changed
Fixed
SpacingAfterSetVis[i]bility.Statistics
Closed: 0 issues
Merged: 6 pull requests
Follow @phpcs on Mastodon or @PHP_CodeSniffer on X to stay informed.
Please consider funding the PHP_CodeSniffer project. If you already do so: thank you!
v3.13.1: - 2025-06-13Compare Source
Added
set_scopearray index in the return value. #1116set_visibilityandset_visibility_tokenarray indexes in the return value. #1116Changed
AvizKeywordOrdererror code.SpacingAfterSetVisibilityerror code.AsymReadMissing. #1122Other
Older XSD files can be referenced via permalinks based on their minor:
https://schema.phpcodesniffer.com/#.#/phpcs.xsd.D91D869.Statistics
Closed: 3 issues
Merged: 24 pull requests
Follow @phpcs on Mastodon or @PHP_CodeSniffer on X to stay informed.
Please consider funding the PHP_CodeSniffer project. If you already do so: thank you!
v3.13.0: - 2025-05-11Compare Source
Added
finalproperties to the following sniffs:Changed
gotolanguage construct keyword. #917finalmodifier keyword is placed before a visibility keyword. #950FinalAfterVisibilityerror code.--reportsCLI flag. #1078Deprecated
PHP_CodeSniffer\Sniffs\Sniffinterface. #891-q(=quiet) CLI flag.Fixed
Other
Calling all testers!
The first beta release for PHP_CodeSniffer 4.0 has been tagged. Please help by testing the beta release and reporting any issues you run into.
Upgrade guides for both ruleset maintainers/end-users, as well as for sniff developers and integrators, have been published to the Wiki to help smooth the transition.
Statistics
Closed: 3 issues
Merged: 29 pull requests
Follow @phpcs on Mastodon or @PHP_CodeSniffer on X to stay informed.
Please consider funding the PHP_CodeSniffer project. If you already do so: thank you!
v3.12.2: - 2025-04-13Compare Source
Added
finalproperties to the following sniffs:Changed
short_open_tagsetting.Fixed
@paramtags.finalclasses.Diff+ theCodereports are requested and caching is on.Other
Read the open invitation (#924) for all the details.
New Contributors
The PHP_CodeSniffer project is happy to welcome the following new contributors:
@devfrey
Statistics
Closed: 1 issues
Merged: 36 pull requests
Follow @phpcs on Mastodon or @PHP_CodeSniffer on X to stay informed.
Please consider funding the PHP_CodeSniffer project. If you already do so: thank you!
v3.12.1: - 2025-04-04Compare Source
Added
Changed
Deprecated
Generic.Functions.CallTimePassByReferencesniff. See #921.Fixed
InvalidArgumentExceptions when displaying verbose information.?in nullable types for readonly properties.Configuration
📅 Schedule: (UTC)
🚦 Automerge: Disabled by config. Please merge this manually once you are satisfied.
♻ Rebasing: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.
🔕 Ignore: Close this PR and you won't be reminded about this update again.
This PR was generated by Mend Renovate. View the repository job log.