Skip to content

Teampass

v3.2.0.8 Security

This release includes 4 security fixes for security teams reviewing exposed deployments.

Published 17d Secrets & Credentials
βœ“ No known CVEs patched
Read the diff β†’ Tool health β†’ What is this tool? β†’
This release patches 4 known CVEs

Topics

php

Affected surfaces

auth rbac rce_ssrf

ReleasePort's take

Moderate signal
editorial:auto 10d

Versionβ€―3.2.0.8 of Teampass resolves critical security vulnerabilities including mass‑assignment privilege escalation, OAuth2 authentication bypass, SQL injection in user‑logs, and authenticated path traversal/file write during file upload.

Why it matters: All four high‑severity fixes (GHSA scores 95) address exploitable attack surfaces; operators must upgrade immediately to prevent privilege escalation, unauthorized access, data leakage, and arbitrary file writes.

Summary

AI summary

Broad release touches πŸ”’ Security fixes, Important, πŸ› οΈ Improvements, and πŸ› Bug fixes.

Changes in this release

Security Critical

Fixes mass-assignment privilege escalation in user management (GHSA-x8jf-9g87-j232, GHSA-8mvg-rv84-jwgg).

Fixes mass-assignment privilege escalation in user management (GHSA-x8jf-9g87-j232, GHSA-8mvg-rv84-jwgg).

Source: llm_adapter@2026-07-16

Confidence: high

β€”
Security Critical

Fixes OAuth2 authentication bypass (GHSA-2mvr-v9w8-34c7).

Fixes OAuth2 authentication bypass (GHSA-2mvr-v9w8-34c7).

Source: llm_adapter@2026-07-16

Confidence: high

β€”
Security Critical

Fixes SQL injection in the user-logs datatable (GHSA-fqg6-xvv8-w228).

Fixes SQL injection in the user-logs datatable (GHSA-fqg6-xvv8-w228).

Source: llm_adapter@2026-07-16

Confidence: high

β€”
Security Critical

Fixes authenticated path traversal / arbitrary file write in file upload (GHSA-wwxq-c766-v93w).

Fixes authenticated path traversal / arbitrary file write in file upload (GHSA-wwxq-c766-v93w).

Source: llm_adapter@2026-07-16

Confidence: high

β€”
Breaking High

Enforces folder‑level rights on bulk delete, move, and items_delete operations (#5275).

Enforces folder‑level rights on bulk delete, move, and items_delete operations (#5275).

Source: llm_adapter@2026-07-16

Confidence: high

β€”
Feature Medium

Adds API item cache synchronization on create/update/delete (PR #5274).

Adds API item cache synchronization on create/update/delete (PR #5274).

Source: llm_adapter@2026-07-16

Confidence: high

β€”
Feature Medium

Adds search/filtering on the API users table and refactors API‑keys display (PR #5273).

Adds search/filtering on the API users table and refactors API‑keys display (PR #5273).

Source: llm_adapter@2026-07-16

Confidence: high

β€”
Feature Medium

Adds new‑version notifications with release messages on the admin dashboard (PR #5270).

Adds new‑version notifications with release messages on the admin dashboard (PR #5270).

Source: llm_adapter@2026-07-16

Confidence: high

β€”
Bugfix Medium

Fixes legacy attachment decryption after phpseclib v1β†’v3 migration (#5269).

Fixes legacy attachment decryption after phpseclib v1β†’v3 migration (#5269).

Source: llm_adapter@2026-07-16

Confidence: high

β€”
Bugfix Medium

Fixes fatal 500 on login after idle session.

Fixes fatal 500 on login after idle session.

Source: llm_adapter@2026-07-16

Confidence: high

β€”
Full changelog

What's Changed

This is a security and stability release. Upgrading is strongly recommended for all installations, as it closes several authenticated vulnerabilities and access-control gaps.

πŸ”’ Security fixes

  • Mass-assignment privilege escalation in user management (GHSA-x8jf-9g87-j232) - the save_user_change handler wrote attacker-controlled columns into the users table, allowing a user to grant themselves admin. Writes are now restricted to an allow-list of non-privileged columns, with manager/admin target-scope enforcement. Also closes the related duplicate report GHSA-8mvg-rv84-jwgg and a residual cross-user API-key overwrite in the same handler.
  • OAuth2 authentication bypass (GHSA-2mvr-v9w8-34c7) - an unbound oauth2LoginOngoing session flag let an OAuth2 user authenticate as any local/LDAP account. The flag is now bound to the authenticated subject (the submitted login must match the session userPrincipalName).
  • SQL injection in the user-logs datatable (GHSA-fqg6-xvv8-w228) - an unvalidated ordering parameter was concatenated into the ORDER BY clause. The clause is now rebuilt from a fixed column map with a strict asc/desc allow-list.
  • Authenticated path traversal / arbitrary file write in file upload (GHSA-wwxq-c766-v93w) - the on-disk destination was built from the POST name field with insufficient sanitization. Path separators and traversal are now rejected, the name is reduced to basename(), the checked extension is derived from the on-disk name, and a realpath() containment check is enforced.

πŸ›‘οΈ Access-rights enforcement (#5275)

Folder-level rights are now consistently enforced on bulk operations, matching the single-item paths and the UI:

  • Mass item deletion now checks the folder delete right (previously only folder accessibility), so a user with No-Delete access can no longer bulk-delete via the search menu.
  • Mass item move now enforces the delete right on the source folder and the edit right on the destination.
  • items_delete no longer falls through to the deletion after a failed right check (which previously deleted the item anyway and returned malformed JSON). Unauthorized items are skipped and reported.
  • Added the missing English and French language keys for the items_delete response (previously raw keys were shown to users).

πŸ› Bug fixes

  • Legacy attachment decryption after phpseclib v1β†’v3 migration (#5269) - attachments uploaded before the migration failed to decrypt. decryptFile() now tries v3 first and falls back to the legacy v1 key derivation. Item passwords were unaffected.
  • Fatal 500 on login after idle session - an expired/garbage-collected session during an idle login page caused an uncaught TypeError. The login flow now emits the standard "session expired / log in again" dialog instead.

πŸ› οΈ Improvements

  • API item cache (PR #5274) - item create/update/delete now keep the API item cache in sync, with an authorId parameter, a UNIQUE(id) constraint plus INSERT IGNORE to eliminate a duplicate-row race in the self-heal path (applied to the installer schema and to existing installs via upgrade), and new coverage in ApiItemCacheSyncTest.
  • Admin - API users (PR #5273) - added search/filtering on the API users table and refactored the API-keys display logic.
  • New-version notifications (PR #5270) - the admin dashboard now surfaces a new-version alert and lets admins view release messages, with dedicated brand/version badge styling.

⬆️ Upgrade notes

  • A database upgrade step adds a UNIQUE(id) constraint to the API item cache table on existing installs, no manual action required, applied automatically by the upgrade.

Full Changelog

Full Changelog: https://github.com/nilsteampassnet/TeamPass/compare/3.2.0.7...3.2.0.8

Important

  • Requires at least PHP 8.2

Languages

Please join Teampass v3 translation project on Poeditor and translate it for your language.

Installation

Follow instructions from Documentation.

Upgrade

Follow instructions from Documentation.

Ideas and comments

Are welcome ... please use Discussions.

Breaking Changes

  • Minimum supported PHP version raised to 8.2

Security Fixes

  • GHSA-x8jf-9g87-j232 – Mass‑assignment privilege escalation in user management (write to attacker‑controlled columns)
  • GHSA-2mvr-v9w8-34c7 – OAuth2 authentication bypass allowing impersonation of any local/LDAP account
  • GHSA-fqg6-xvv8-w228 – SQL injection via unvalidated ordering parameter in user‑logs datatable
  • GHSA-wwxq-c766-v93w – Authenticated path traversal / arbitrary file write in file upload

Weekly OSS security release digest.

The CVE patches and breaking changes that affected production tools this week. One email, every Sunday.

No spam, unsubscribe anytime.

Share this release

Track Teampass

Get notified when new releases ship.

Sign up free

About Teampass

Password manager dedicated for managing passwords in a collaborative way. One symmetric key is used to encrypt all shared/team passwords and stored server side in a file and the database. works on any server Apache, MySQL and PHP.

All releases β†’

Beta — feedback welcome: [email protected]