Advisory Database
  • Advisories
  • Dependency Scanning
  1. composer
  2. ›
  3. snipe/snipe-it
  4. ›
  5. CVE-2026-49976

CVE-2026-49976: Snipe-IT Vulnerable to User Account Escalation via CSV Import

June 23, 2026

The CSV user import in update mode bypasses user-edit authorization. A user with only the import permission can overwrite any non-admin user’s email by uploading a CSV, then trigger a password reset to take over the account.

UserImporter.php checks the canEditAuthFields gate and tries to strip auth fields from the model:

// app/Importer/UserImporter.php:107-114
if (Auth::check() && (! Gate::allows('canEditAuthFields', $user))) {
unset($user->username);
unset($user->email);
unset($user->password);
unset($user->activated);
}
$user->update($this->sanitizeItemForUpdating($user));

The unset()s operate on the model, but sanitizeItemForUpdating() rebuilds its array from $this->item (the raw CSV row), not from the model:

// app/Importer/ItemImporter.php:135-149
protected function sanitizeItemForStoring($model, $updating = false)
{
$item = collect($this->item);                  // CSV data, not model attributes
$item = $item->only($model->getFillable());
if ($updating) {
$item = $item->reject(fn($v) => empty($v));
}
return $item->toArray();
}

The attacker’s CSV values pass through untouched.

For non-admin attacker vs. non-admin, non-superuser target, the gate returns true at AuthServiceProvider.php:137, so the unset() block never executes. The entire import path checks only $this->authorize('import') (ImportController.php:196); no users.edit check anywhere. The normal API route PATCH /api/v1/users/{id} correctly returns 403 for the same user.

Attacker must have import privileges to exploit this, and that permission must be granted specifically and intentionally by a superadmin.

References

  • github.com/advisories/GHSA-p68w-rgmg-3c2v
  • github.com/grokability/snipe-it/security/advisories/GHSA-p68w-rgmg-3c2v
  • nvd.nist.gov/vuln/detail/CVE-2026-49976

Code Behaviors & Features

Detect and mitigate CVE-2026-49976 with GitLab Dependency Scanning

Secure your software supply chain by verifying that all open source dependencies used in your projects contain no disclosed vulnerabilities. Dependency Scanning using SBOM also detects vulnerabilities from proprietary advisories that this site does not include. Learn more about Dependency Scanning using SBOM →

Affected versions

All versions before 8.6.0

Fixed versions

  • 8.6.0

Solution

Upgrade to version 8.6.0 or above.

Impact 6.5 MEDIUM

CVSS:3.1/AV:N/AC:L/PR:H/UI:N/S:U/C:H/I:H/A:N

Learn more about CVSS

Weakness

  • CWE-862: Missing Authorization

Source file

packagist/snipe/snipe-it/CVE-2026-49976.yml

Spotted a mistake? Edit the file on GitLab.

  • Site Repo
  • About GitLab
  • Terms
  • Privacy Statement
  • Contact

Page generated Sun, 08 Nov 2026 00:15:52 +0000.