Open Source · · 1 day

laravel-lang Packagist packages re-tagged from a compromised org credential

An attacker with push access to Laravel-Lang rewrote every tag in lang, attributes, actions, and http-statuses to commits that autoloaded a credential stealer through composer. The dropper fetched a PHP second stage from flipboxstudio.info and exfiltrated runner environment data.

Late on May 22, 2026, an attacker with push access to the Laravel-Lang GitHub organization rewrote every version tag on four widely used Laravel translation packages, planting a credential stealer that ran on the next composer update for downstream applications.

Laravel-Lang publishes Laravel translation packages on Packagist, the central Composer package index. Four repositories under the organization back four Composer packages: lang, attributes, actions, and http-statuses. Between 22:32 and 23:24 UTC on May 22, researchers at StepSecurity said the attacker rewrote every tag across all four, 502 on the lang repository alone and smaller numbers in proportion to the others. Each malicious commit was authored as Your Name <[email protected]> and changed two files, composer.json and a new src/helpers.php. Identical diffs and the same fake author string across all four repositories pointed StepSecurity to a single compromised organization-wide push credential. An earlier Aikido report had described the delivery as a fork-tag pattern; StepSecurity's git evidence ruled that out. A malware researcher at Aikido filed the compromise directly with the maintainers, urging them to rotate credentials and delete the new tags.

The composer.json change appended src/helpers.php to the autoload.files array. Composer includes every file on that list whenever an application loads vendor/autoload.php, the standard Laravel boot path, so no individual call site needed to import the helper. Any composer update, or any composer install without a pre-attack lockfile, resolved each version constraint to the new tag SHA and executed the helper on the next request, and on every request the application served afterward. Pre-attack lockfiles were safe until they were refreshed. The dropper assembled its C2 hostname at runtime from character codes to avoid plain-text strings, fetched a second stage from flipboxstudio.info, a typosquat of the legitimate flipboxstudio.com, over TLS with certificate verification disabled and a spoofed Mozilla User-Agent, wrote it under sys_get_temp_dir()/.laravel_locale/, executed it in a detached process, and unlinked itself from disk. A per-host MD5 marker kept the stealer from running twice on the same machine. On Windows it dropped a .vbs file and ran it through cscript, and StepSecurity observed a Linux variant that executed an ELF from /tmp/.<8 hex> and removed the path so the process kept running from a deleted inode under parent PID 1.

Socket's reverse engineering of stage two describes a credential-harvesting framework with seventeen collectors, reaching cloud instance metadata, Kubernetes service-account and HashiCorp Vault tokens, working directories for Jenkins, GitLab Runner, GitHub Actions, CircleCI, TravisCI, and ArgoCD, SSH keys, Git and Docker credentials, per-process environments, browser profiles, password manager stores, and cryptocurrency wallets. On Windows the payload shipped an embedded DebugChromium.exe that abused Chrome's own debugging interface to extract the v127+ app-bound encryption key and decrypt saved passwords that Chrome's newer protections would otherwise have kept out of reach. Packagist removed the malicious versions and temporarily delisted the four packages, and StepSecurity advised operators to halt composer update until lockfiles were verified against pre-attack SHAs and to rotate any CI token, cloud credential, or deploy key a runner could reach during the window. The tag-rewrite delivery resembles the actions-cool compromise four days earlier (see [[actions-cool]]), but the two are distinct. There, TeamPCP routed tags on official refs to commits inside an attacker-owned fork without ever pushing to the official repository; here the attacker held push access and rewrote tags directly. The flipboxstudio.info infrastructure does not appear in the Mini Shai-Hulud campaign.

Notes

  • StepSecurity counted 502 rewritten tags on laravel-lang/lang, 86 on attributes, 46 on actions, and every tag from v1.0.0 to v3.4.5 on http-statuses. Socket counted roughly 700 across the four. Aikido's earlier count of 233 missed actions.
  • The attacker held org-wide push access and rewrote tags directly on the official repositories. Aikido described a fork-tag mechanism; StepSecurity's git evidence, identical "Your Name" commits on official refs, indicates direct push.
  • The window was 2026-05-22 22:32 UTC to 2026-05-23 00:00 UTC. The dropper writes a per-host marker, and its second-stage PHP drops an ELF at /tmp/.<8 hex> and unlinks it, leaving a live process with parent PID 1.
  • GitHub still retains all fifteen malicious commits StepSecurity named, and within each repository they share one Git tree. The samples manifest records one complete commit-derived reconstruction per distinct malicious tree.

Appendix · Affected releases

laravel-lang/lang packagist
1.0.2 no sample yet
2.0.1 no sample yet
2.0.2 no sample yet
2.0.3 no sample yet
2.0.4 no sample yet
2.0.5 no sample yet
2.0.6 no sample yet
2.0.7 no sample yet
496 more versions
2.0.8 no sample yet
2.0.9 no sample yet
2.0.10 no sample yet
2.0.11 no sample yet
2.0.12 no sample yet
2.0.13 no sample yet
2.0.14 no sample yet
2.0.15 no sample yet
2.0.16 no sample yet
2.0.17 no sample yet
2.0.18 no sample yet
2.0.19 no sample yet
2.0.20 no sample yet
2.0.21 no sample yet
2.0.22 no sample yet
2.0.23 no sample yet
2.0.24 no sample yet
2.0.25 no sample yet
2.0.26 no sample yet
2.0.27 no sample yet
2.0.28 no sample yet
2.0.29 no sample yet
2.0.30 no sample yet
2.0.31 no sample yet
2.0.32 no sample yet
2.0.33 no sample yet
2.0.34 no sample yet
2.0.35 no sample yet
2.0.36 no sample yet
2.0.37 no sample yet
2.0.38 no sample yet
2.0.39 no sample yet
2.0.40 no sample yet
2.0.41 no sample yet
2.0.42 no sample yet
2.0.43 no sample yet
3.0.0 no sample yet
3.0.1 no sample yet
3.0.2 no sample yet
3.0.3 no sample yet
3.0.4 no sample yet
3.0.5 no sample yet
3.0.6 no sample yet
3.0.7 no sample yet
3.0.8 no sample yet
3.0.9 no sample yet
3.0.10 no sample yet
3.0.11 no sample yet
3.0.12 no sample yet
3.0.13 no sample yet
3.0.14 no sample yet
3.0.15 no sample yet
3.0.16 no sample yet
3.0.17 no sample yet
3.0.18 no sample yet
3.0.19 no sample yet
3.0.20 no sample yet
3.0.21 no sample yet
3.0.22 no sample yet
3.0.23 no sample yet
3.0.24 no sample yet
3.0.25 no sample yet
3.0.26 no sample yet
3.0.27 no sample yet
3.0.28 no sample yet
3.0.29 no sample yet
3.0.30 no sample yet
3.0.31 no sample yet
3.0.32 no sample yet
3.0.33 no sample yet
3.0.34 no sample yet
3.0.35 no sample yet
3.0.36 no sample yet
3.0.37 no sample yet
3.0.38 no sample yet
3.0.39 no sample yet
3.0.40 no sample yet
3.0.41 no sample yet
3.0.42 no sample yet
3.0.43 no sample yet
3.0.44 no sample yet
3.0.45 no sample yet
3.0.46 no sample yet
3.0.47 no sample yet
3.0.48 no sample yet
3.0.49 no sample yet
3.0.50 no sample yet
3.0.51 no sample yet
3.0.52 no sample yet
3.0.53 no sample yet
3.0.54 no sample yet
3.0.56 no sample yet
3.0.57 no sample yet
3.0.58 no sample yet
3.0.59 no sample yet
3.0.60 no sample yet
3.0.61 no sample yet
3.0.62 no sample yet
4.0.0 no sample yet
4.0.1 no sample yet
4.0.2 no sample yet
4.0.3 no sample yet
4.0.4 no sample yet
4.0.5 no sample yet
4.0.6 no sample yet
4.0.7 no sample yet
4.0.8 no sample yet
4.0.9 no sample yet
4.0.10 no sample yet
4.0.11 no sample yet
5.0.0 no sample yet
6.0.0 no sample yet
6.0.1 no sample yet
6.0.2 no sample yet
6.0.3 no sample yet
6.1.0 no sample yet
6.1.1 no sample yet
6.1.2 no sample yet
6.1.3 no sample yet
6.1.4 no sample yet
7.0.0 no sample yet
7.0.1 no sample yet
7.0.2 no sample yet
7.0.3 no sample yet
7.0.4 no sample yet
7.0.5 no sample yet
7.0.6 no sample yet
7.0.7 no sample yet
7.0.8 no sample yet
7.0.9 no sample yet
8.0.0 no sample yet
8.0.1 no sample yet
8.0.2 no sample yet
8.0.3 no sample yet
8.1.0 no sample yet
8.1.1 no sample yet
8.1.2 no sample yet
8.1.3 no sample yet
9.0.0 no sample yet
9.0.1 no sample yet
9.1.0 no sample yet
9.1.1 no sample yet
9.1.2 no sample yet
9.1.3 no sample yet
10.0.0 no sample yet
10.0.1 no sample yet
10.0.2 no sample yet
10.1.0 no sample yet
10.1.1 no sample yet
10.1.2 no sample yet
10.1.3 no sample yet
10.1.4 no sample yet
10.1.5 no sample yet
10.1.6 no sample yet
10.1.7 no sample yet
10.1.8 no sample yet
10.1.9 no sample yet
10.1.10 no sample yet
10.1.11 no sample yet
10.1.12 no sample yet
10.2.0 no sample yet
10.3.0 no sample yet
10.4.0 no sample yet
10.4.1 no sample yet
10.4.2 no sample yet
10.4.3 no sample yet
10.4.4 no sample yet
10.4.5 no sample yet
10.4.6 no sample yet
10.4.7 no sample yet
10.4.8 no sample yet
10.4.9 no sample yet
10.4.10 no sample yet
10.4.11 no sample yet
10.4.12 no sample yet
10.4.13 no sample yet
10.4.14 no sample yet
10.5.0 no sample yet
10.5.1 no sample yet
10.5.2 no sample yet
10.6.0 no sample yet
10.7.0 no sample yet
10.7.1 no sample yet
10.7.2 no sample yet
10.8.0 no sample yet
10.9.0 no sample yet
10.9.1 no sample yet
10.9.2 no sample yet
10.9.3 no sample yet
10.9.4 no sample yet
10.9.5 no sample yet
10.9.6 no sample yet
11.0.0 no sample yet
11.0.1 no sample yet
11.0.2 no sample yet
11.0.3 no sample yet
11.0.4 no sample yet
11.0.5 no sample yet
11.0.6 no sample yet
11.0.7 no sample yet
11.0.8 no sample yet
11.0.9 no sample yet
11.0.10 no sample yet
11.0.11 no sample yet
11.0.12 no sample yet
11.0.13 no sample yet
11.0.14 no sample yet
11.0.15 no sample yet
11.0.16 no sample yet
11.0.17 no sample yet
11.0.18 no sample yet
11.0.19 no sample yet
11.0.20 no sample yet
12.0.0 no sample yet
12.0.1 no sample yet
12.0.2 no sample yet
12.0.3 no sample yet
12.0.4 no sample yet
12.0.5 no sample yet
12.0.6 no sample yet
12.0.7 no sample yet
12.0.8 no sample yet
12.0.9 no sample yet
12.0.10 no sample yet
12.1.0 no sample yet
12.1.1 no sample yet
12.1.2 no sample yet
12.1.3 no sample yet
12.1.4 no sample yet
12.1.5 no sample yet
12.2.0 no sample yet
12.2.1 no sample yet
12.2.2 no sample yet
12.2.3 no sample yet
12.3.0 no sample yet
12.3.1 no sample yet
12.3.2 no sample yet
12.4.0 no sample yet
12.5.0 no sample yet
12.5.1 no sample yet
12.5.2 no sample yet
12.5.3 no sample yet
12.5.4 no sample yet
12.5.5 no sample yet
12.5.6 no sample yet
12.5.7 no sample yet
12.5.8 no sample yet
12.6.0 no sample yet
12.6.1 no sample yet
12.7.0 no sample yet
12.7.1 no sample yet
12.7.2 no sample yet
12.7.3 no sample yet
12.8.0 no sample yet
12.8.1 no sample yet
12.8.2 no sample yet
12.8.4 no sample yet
12.9.0 no sample yet
12.9.1 no sample yet
12.9.2 no sample yet
12.9.3 no sample yet
12.9.4 no sample yet
12.9.5 no sample yet
12.9.6 no sample yet
12.9.7 no sample yet
12.9.8 no sample yet
12.9.9 no sample yet
12.10.0 no sample yet
12.11.0 no sample yet
12.11.1 no sample yet
12.11.2 no sample yet
12.11.3 no sample yet
12.11.4 no sample yet
12.11.5 no sample yet
12.12.0 no sample yet
12.13.0 no sample yet
12.13.1 no sample yet
12.14.0 no sample yet
12.14.1 no sample yet
12.14.2 no sample yet
12.15.0 no sample yet
12.15.1 no sample yet
12.15.2 no sample yet
12.16.0 no sample yet
12.16.1 no sample yet
12.17.0 no sample yet
12.17.1 no sample yet
12.18.0 no sample yet
12.18.1 no sample yet
12.18.2 no sample yet
12.18.3 no sample yet
12.18.4 no sample yet
12.18.5 no sample yet
12.18.6 no sample yet
12.19.0 no sample yet
12.19.1 no sample yet
12.19.2 no sample yet
12.19.3 no sample yet
12.19.4 no sample yet
12.20.0 no sample yet
12.20.1 no sample yet
12.20.2 no sample yet
12.20.3 no sample yet
12.20.4 no sample yet
12.20.5 no sample yet
12.21.0 no sample yet
12.21.1 no sample yet
12.21.2 no sample yet
12.21.3 no sample yet
12.21.4 no sample yet
12.21.5 no sample yet
12.21.6 no sample yet
12.21.7 no sample yet
12.21.8 no sample yet
12.21.9 no sample yet
12.21.10 no sample yet
12.22.0 no sample yet
12.22.1 no sample yet
12.23.0 no sample yet
12.23.1 no sample yet
12.23.2 no sample yet
12.24.0 no sample yet
12.24.1 no sample yet
12.24.2 no sample yet
12.24.3 no sample yet
13.0.0 no sample yet
13.0.1 no sample yet
13.1.0 no sample yet
13.1.1 no sample yet
13.1.2 no sample yet
13.1.3 no sample yet
13.1.4 no sample yet
13.2.0 no sample yet
13.2.1 no sample yet
13.2.2 no sample yet
13.2.3 no sample yet
13.2.4 no sample yet
13.2.5 no sample yet
13.2.6 no sample yet
13.2.7 no sample yet
13.2.8 no sample yet
13.3.0 no sample yet
13.4.0 no sample yet
13.5.0 no sample yet
13.5.1 no sample yet
13.6.0 no sample yet
13.6.1 no sample yet
13.7.0 no sample yet
13.8.0 no sample yet
13.9.0 no sample yet
13.9.1 no sample yet
13.10.0 no sample yet
13.11.0 no sample yet
13.12.0 no sample yet
13.12.1 no sample yet
14.0.0 no sample yet
14.0.1 no sample yet
14.1.0 no sample yet
14.1.1 no sample yet
14.1.2 no sample yet
14.1.3 no sample yet
14.1.4 no sample yet
14.1.5 no sample yet
14.2.0 no sample yet
14.2.1 no sample yet
14.2.2 no sample yet
14.2.3 no sample yet
14.2.4 no sample yet
14.2.5 no sample yet
14.2.6 no sample yet
14.2.7 no sample yet
14.2.8 no sample yet
14.2.9 no sample yet
14.3.0 no sample yet
14.3.1 no sample yet
14.3.2 no sample yet
14.3.3 no sample yet
14.3.4 no sample yet
14.3.5 no sample yet
14.3.6 no sample yet
14.3.7 no sample yet
14.4.0 no sample yet
14.5.0 no sample yet
14.5.1 no sample yet
14.5.2 no sample yet
14.6.0 no sample yet
14.7.0 no sample yet
14.8.0 no sample yet
14.8.1 no sample yet
15.0.0 no sample yet
15.1.0 no sample yet
15.1.1 no sample yet
15.1.2 no sample yet
15.1.3 no sample yet
15.1.4 no sample yet
15.1.5 no sample yet
15.2.0 no sample yet
15.2.1 no sample yet
15.2.2 no sample yet
15.3.0 no sample yet
15.3.1 no sample yet
15.4.0 no sample yet
15.4.1 no sample yet
15.5.0 no sample yet
15.5.1 no sample yet
15.5.2 no sample yet
15.5.3 no sample yet
15.5.4 no sample yet
15.5.5 no sample yet
15.5.6 no sample yet
15.6.0 no sample yet
15.6.1 no sample yet
15.6.2 no sample yet
15.7.0 no sample yet
15.7.1 no sample yet
15.7.2 no sample yet
15.7.3 no sample yet
15.7.4 no sample yet
15.7.5 no sample yet
15.8.0 no sample yet
15.8.1 no sample yet
15.9.0 no sample yet
15.9.1 no sample yet
15.9.2 no sample yet
15.9.3 no sample yet
15.9.4 no sample yet
15.9.5 no sample yet
15.9.6 no sample yet
15.9.7 no sample yet
15.10.0 no sample yet
15.11.0 no sample yet
15.11.1 no sample yet
15.11.2 no sample yet
15.11.3 no sample yet
15.11.4 no sample yet
15.11.5 no sample yet
15.11.6 no sample yet
15.11.7 no sample yet
15.12.0 no sample yet
15.12.1 no sample yet
15.13.0 no sample yet
15.14.0 no sample yet
15.15.0 no sample yet
15.16.0 no sample yet
15.17.0 no sample yet
15.17.1 no sample yet
15.18.0 no sample yet
15.19.0 no sample yet
15.19.1 no sample yet
15.19.2 no sample yet
15.19.3 no sample yet
15.19.4 no sample yet
15.19.5 no sample yet
15.19.6 no sample yet
15.19.7 no sample yet
15.19.8 no sample yet
15.19.9 no sample yet
15.20.0 no sample yet
15.20.1 no sample yet
15.20.2 no sample yet
15.21.0 no sample yet
15.21.1 no sample yet
15.22.0 no sample yet
15.22.1 no sample yet
15.22.2 no sample yet
15.22.3 no sample yet
15.22.4 no sample yet
15.22.5 no sample yet
15.22.6 no sample yet
15.22.7 no sample yet
15.22.8 no sample yet
15.23.0 no sample yet
15.23.1 no sample yet
15.23.2 no sample yet
15.23.3 no sample yet
15.24.0 no sample yet
15.24.1 no sample yet
15.24.2 no sample yet
15.24.3 no sample yet
15.24.4 no sample yet
15.24.5 no sample yet
15.25.0 no sample yet
15.26.0 no sample yet
15.26.1 no sample yet
15.26.2 no sample yet
15.26.3 no sample yet
15.26.4 no sample yet
15.26.5 no sample yet
15.27.0 no sample yet
15.28.0 no sample yet
15.28.1 no sample yet
15.28.2 no sample yet
15.28.3 no sample yet
15.28.4 no sample yet
15.28.5 no sample yet
15.30.0 no sample yet
  • Every tag rewritten during the attack window. StepSecurity reported 502; the repo now carries 504 pre-attack tags, restored after cleanup. Socket confirmed malicious code in 14.3.7, and Packagist delisted the package.
1.1.4 no sample yet
1.1.5 no sample yet
2.5.0 no sample yet
2.5.1 no sample yet
2.6.0 no sample yet
2.6.1 no sample yet
2.6.2 no sample yet
2.7.0 no sample yet
75 more versions
2.8.0 no sample yet
2.8.1 no sample yet
2.9.0 no sample yet
2.9.1 no sample yet
2.9.2 no sample yet
2.9.3 no sample yet
2.9.4 no sample yet
2.9.5 no sample yet
2.10.0 no sample yet
2.10.1 no sample yet
2.10.2 no sample yet
2.10.3 no sample yet
2.10.4 no sample yet
2.10.5 no sample yet
2.10.6 no sample yet
2.10.7 no sample yet
2.10.8 no sample yet
2.10.9 no sample yet
2.10.10 no sample yet
2.11.0 no sample yet
2.11.1 no sample yet
2.11.2 no sample yet
2.11.3 no sample yet
2.11.4 no sample yet
2.12.0 no sample yet
2.12.1 no sample yet
2.13.0 no sample yet
2.13.1 no sample yet
2.13.2 no sample yet
2.13.3 no sample yet
2.13.4 no sample yet
2.13.5 no sample yet
2.13.6 no sample yet
2.14.0 no sample yet
2.14.1 no sample yet
2.14.2 no sample yet
2.15.8 no sample yet
2.16.0 no sample yet
v1.0.0 no sample yet
v1.0.1 no sample yet
v1.0.2 no sample yet
v1.0.3 no sample yet
v1.0.4 no sample yet
v1.0.5 no sample yet
v1.0.6 no sample yet
v1.0.7 no sample yet
v1.0.8 no sample yet
v1.0.9 no sample yet
v1.0.10 no sample yet
v1.0.11 no sample yet
v1.1.0 no sample yet
v1.1.1 no sample yet
v1.1.2 no sample yet
v1.1.3 no sample yet
v2.0.0 no sample yet
v2.0.1 no sample yet
v2.0.2 no sample yet
v2.0.3 no sample yet
v2.0.4 no sample yet
v2.0.5 no sample yet
v2.0.6 no sample yet
v2.0.7 no sample yet
v2.0.8 no sample yet
v2.0.9 no sample yet
v2.1.0 no sample yet
v2.1.1 no sample yet
v2.1.2 no sample yet
v2.2.0 no sample yet
v2.3.0 no sample yet
v2.3.1 no sample yet
v2.3.2 no sample yet
v2.3.3 no sample yet
v2.3.4 no sample yet
v2.4.0 no sample yet
v2.4.1 sha256 3ffe1a0d…a326e3e3 download unavailable
  • StepSecurity reported 86 rewritten tags; the GitHub repo now carries 83 pre-attack tags, suggesting three malicious tags were deleted rather than restored. Mix of bare-numeric and v-prefixed tag names.
1.0.0 no sample yet
1.0.1 no sample yet
1.1.0 no sample yet
1.1.1 no sample yet
1.1.2 no sample yet
1.1.3 no sample yet
1.2.0 no sample yet
1.2.1 no sample yet
37 more versions
1.3.0 no sample yet
1.3.1 no sample yet
1.4.0 no sample yet
1.4.1 no sample yet
1.4.2 no sample yet
1.4.3 no sample yet
1.4.4 no sample yet
1.4.5 no sample yet
1.5.0 no sample yet
1.5.1 no sample yet
1.5.2 no sample yet
1.5.3 no sample yet
1.5.4 no sample yet
1.5.5 no sample yet
1.5.6 no sample yet
1.6.0 no sample yet
1.6.1 no sample yet
1.7.0 no sample yet
1.8.0 no sample yet
1.8.1 no sample yet
1.8.2 no sample yet
1.8.3 no sample yet
1.8.4 no sample yet
1.8.5 no sample yet
1.8.6 no sample yet
1.8.7 no sample yet
1.8.8 no sample yet
1.8.9 no sample yet
1.8.10 no sample yet
1.9.0 no sample yet
1.10.0 no sample yet
1.10.1 no sample yet
1.10.2 no sample yet
1.11.0 no sample yet
1.11.1 no sample yet
1.12.4 no sample yet
1.13.0 no sample yet
  • StepSecurity reported 46 rewritten tags covering 1.0.0 through 1.12.2; the GitHub repo now carries 45 pre-attack tags (1.0.0 through 1.13.0), so a small amount of tag churn occurred during cleanup. Not flagged in the initial Aikido report.
1.0.11 no sample yet
2.1.4 no sample yet
3.5.0 no sample yet
3.6.0 no sample yet
3.6.1 no sample yet
3.6.2 no sample yet
3.6.3 no sample yet
3.7.0 no sample yet
61 more versions
3.8.0 no sample yet
3.8.1 no sample yet
3.8.2 no sample yet
3.8.3 no sample yet
3.8.4 no sample yet
3.8.5 no sample yet
3.9.0 no sample yet
3.10.0 no sample yet
3.10.1 no sample yet
3.10.2 no sample yet
3.10.3 no sample yet
3.10.4 no sample yet
3.10.5 no sample yet
3.11.0 no sample yet
3.11.1 no sample yet
3.12.0 no sample yet
3.12.1 no sample yet
3.13.0 no sample yet
v1.0.0 no sample yet
v1.0.1 no sample yet
v1.0.2 no sample yet
v1.0.3 no sample yet
v1.0.4 no sample yet
v1.0.5 no sample yet
v1.0.6 no sample yet
v1.0.7 no sample yet
v1.0.8 no sample yet
v1.0.9 no sample yet
v1.0.10 no sample yet
v2.0.0 no sample yet
v2.0.1 no sample yet
v2.1.0 no sample yet
v2.1.1 no sample yet
v2.1.2 no sample yet
v2.1.3 no sample yet
v3.0.0 no sample yet
v3.0.1 no sample yet
v3.0.2 no sample yet
v3.0.3 no sample yet
v3.0.4 no sample yet
v3.0.5 no sample yet
v3.0.6 no sample yet
v3.0.7 no sample yet
v3.0.8 no sample yet
v3.1.0 no sample yet
v3.1.1 no sample yet
v3.1.2 no sample yet
v3.1.3 no sample yet
v3.1.4 no sample yet
v3.1.5 no sample yet
v3.2.0 no sample yet
v3.2.1 no sample yet
v3.2.2 no sample yet
v3.3.0 no sample yet
v3.3.1 no sample yet
v3.4.0 no sample yet
v3.4.1 no sample yet
v3.4.2 no sample yet
v3.4.3 no sample yet
v3.4.4 no sample yet
v3.4.5 sha256 e852191f…82ac83de download unavailable
  • StepSecurity reported every tag from v1.0.0 through v3.4.5 was rewritten. The repo also carries bare-numeric tags whose target commits predate the window, so 69 pre-attack tags are listed here in total.
Payloads and stagesno published version
15.29.5 sha256 959293a9…9b4b1f70 download unavailable
1.12.2 sha256 853e5169…c7ad6e8d download unavailable

Indicators

References

  1. Laravel-Lang Supply Chain Attack - StepSecuritystepsecurity.io
  2. Laravel-Lang/lang issue #8295 - Compromised version tagsgithub.com
  3. Supply Chain Attack Targets Laravel-Lang Packages With Credential Stealer - Aikidoaikido.dev
  4. Laravel Lang Supply Chain Compromise - Socketsocket.dev
  5. Laravel-Lang/common issue #257 - Compromised version tagsgithub.com
  6. Retained malicious Laravel-Lang/lang commit for 15.29.5github.com
  7. Retained malicious Laravel-Lang/http-statuses commit for v3.4.5github.com
  8. Retained malicious Laravel-Lang/actions commit for 1.12.2github.com
  9. Retained malicious Laravel-Lang/attributes commit for v2.4.1github.com

Source record: oss/attacks/laravel-lang/meta.yaml