Laravel Risk of mass-assignment vulnerabilitiesGHSA-cc2w-ghc5-m5qr
GHSA-cc2w-ghc5-m5qr is a security vulnerability in illuminate/database. A fix is available for illuminate/database — see the affected versions and patch details below.
Real-World Exposure
illuminate/databaseReal-time download stats are indexed for npm and PyPI packages. This vulnerability affects Packagist packages — download data is not available via public APIs for these ecosystems.
Description
Laravel 4.1.29 improves the column quoting for all database drivers. This protects your application from some mass assignment vulnerabilities when not using the fillable property on models. If you are using the fillable property on your models to protect against mass assignment, your application is not vulnerable. However, if you are using guarded and are passing a user controlled array into an "update" or "save" type function, you should upgrade to 4.1.29 immediately as your application may be at risk of mass assignment.
Affected Packages
| Ecosystem | Package | Vulnerable range | Fix |
|---|---|---|---|
| 🐘Packagist | illuminate/database | ≥ 4.0.0&&< 4.1.29 | 4.1.29composer require illuminate/database:^4.1.29 |
Detection & mitigation playbook
Open-source dependencyDetect
Scan your dependency tree (package-lock.json, pnpm-lock.yaml, requirements.txt, go.sum, etc.) for illuminate/database, including transitive dependencies — a direct dependency you never call can still pull in a vulnerable version.
Fix
Update illuminate/database to 4.1.29 or later, then make sure no transitive (indirect) dependency still pins the vulnerable range — O3 confirms GHSA-cc2w-ghc5-m5qr is resolved across your whole dependency graph.
Workarounds
If you can't upgrade right away: gate or disable the affected feature, validate untrusted input at the boundary, and avoid passing attacker-controlled data into the vulnerable path. O3's runtime protection blocks exploitation in production as an interim safeguard until the upgrade lands.
Frequently Asked Questions
Is GHSA-cc2w-ghc5-m5qr in your dependencies?
Find it across Packagist, including transitive dependencies.