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. Learn more about Dependency Scanning →

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, 19 Jul 2026 12:17:21 +0000.