6.2 MEDIUM
- CVSS version (CVSS): 3.1
- Attack Vector (AV): Network (N)
- Attack Complexity (AC): Low (L)
- Privileges Required (PR): High (H)
- User Interaction (UI): Required (R)
- Scope (S): Changed (C)
- Confidentiality (C): High (H)
- Integrity (I): None (N)
- Availability (A): None (N)
- Modified Attack Vector (MAV): Network (N)
- Modified Attack Complexity (MAC): Low (L)
- Modified Privileges Required (MPR): High (H)
- Modified User Interaction (MUI): Required (R)
- Modified Confidentiality (MC): High (H)
- Modified Scope (MS): Changed (C)
- Modified Integrity (MI): None (N)
- Modified Availability (MA): None (N)
Activity log
- Created suggestion
Statamic CMS Unguarded Exposure of 2FA Recovery Codes via Antlers current_user Variable
Statamic CMS's user-augmentation resolver, AugmentedUser::get() in src/Auth/AugmentedUser.php, contains an explicit case for the `two_factor_recovery_codes` handle that returns the user's raw two-factor recovery codes with no access restriction: `if ($handle === 'two_factor_recovery_codes') { return new Value($this->data->get('two_factor_recovery_codes'), ...); }`. Unlike sensitive fields such as password/password_hash, which are excluded from AugmentedUser entirely, two_factor_recovery_codes is neither excluded from augmentation nor present in Statamic's Antlers variable guard lists (guardedVariablePatterns/guardedContentVariablePatterns in src/Providers/ViewServiceProvider.php, and the runtime GlobalRuntimeState guard paths), which by default only guard config.app.key. On any Antlers template field where raw/dynamic template rendering is enabled for a given field (an admin/developer-configured, blueprint-level field option), a template such as `{{ current_user.two_factor_recovery_codes }}{{ value }}|{{ /current_user.two_factor_recovery_codes }}` renders the viewing user's own 2FA recovery codes directly into the HTML response, allowing an attacker who can view or capture that response (e.g. via a shared/observable page, or a crafted link causing a victim to render it) to obtain the codes and bypass 2FA. Exploitation requires that dynamic Antlers rendering already be enabled on a field the target user's data flows through, which is a blueprint-configuration privilege rather than a standard content-editing permission.
References
Affected products
- =<6.23.0
Matching in nixpkgs
pkgs.cmst
QT GUI for Connman with system tray icon
-
nixos-unstable 2023.03.14
- nixpkgs-unstable 2023.03.14
- nixos-unstable-small 2023.03.14
-
nixos-26.05 2023.03.14
- nixos-26.05-small 2023.03.14
- nixpkgs-26.05-darwin 2023.03.14
pkgs.lcms
Color management engine
pkgs.lcms1
Color management engine
pkgs.lcms2
Color management engine
pkgs.cppcms
High Performance C++ Web Framework
-
nixos-unstable 2.0.0.beta2
- nixpkgs-unstable 2.0.0.beta2
- nixos-unstable-small 2.0.0.beta2
-
nixos-26.05 2.0.0.beta2
- nixos-26.05-small 2.0.0.beta2
- nixpkgs-26.05-darwin 2.0.0.beta2
pkgs.xcmsdb
Device Color Characterization utility for X Color Management System
pkgs.argyllcms
Color management system (compatible with ICC)
pkgs.pcmsolver
API for the Polarizable Continuum Model
pkgs.luaPackages.lua-cmsgpack
MessagePack C implementation and bindings for Lua 5.1/5.2/5.3
pkgs.lua51Packages.lua-cmsgpack
MessagePack C implementation and bindings for Lua 5.1/5.2/5.3
pkgs.lua52Packages.lua-cmsgpack
MessagePack C implementation and bindings for Lua 5.1/5.2/5.3
pkgs.lua53Packages.lua-cmsgpack
MessagePack C implementation and bindings for Lua 5.1/5.2/5.3
pkgs.lua54Packages.lua-cmsgpack
MessagePack C implementation and bindings for Lua 5.1/5.2/5.3
pkgs.lua55Packages.lua-cmsgpack
MessagePack C implementation and bindings for Lua 5.1/5.2/5.3
pkgs.python313Packages.cmsdials
Python API client interface to CMS DIALS service
pkgs.python313Packages.dcmstack
DICOM to Nifti conversion preserving metadata
-
nixos-unstable 0.9-unstable-2024-12-05
- nixpkgs-unstable 0.9-unstable-2024-12-05
- nixos-unstable-small 0.9-unstable-2024-12-05
-
nixos-26.05 0.9-unstable-2024-12-05
- nixos-26.05-small 0.9-unstable-2024-12-05
- nixpkgs-26.05-darwin 0.9-unstable-2024-12-05
pkgs.python314Packages.cmsdials
Python API client interface to CMS DIALS service
pkgs.python314Packages.dcmstack
DICOM to Nifti conversion preserving metadata
-
nixos-unstable 0.9-unstable-2024-12-05
- nixpkgs-unstable 0.9-unstable-2024-12-05
- nixos-unstable-small 0.9-unstable-2024-12-05
-
nixos-26.05 0.9-unstable-2024-12-05
- nixos-26.05-small 0.9-unstable-2024-12-05
- nixpkgs-26.05-darwin 0.9-unstable-2024-12-05
pkgs.python313Packages.cmsis-svd
CMSIS SVD parser
pkgs.python313Packages.pyemoncms
Python library for emoncms API
pkgs.python314Packages.cmsis-svd
CMSIS SVD parser
pkgs.python314Packages.pyemoncms
Python library for emoncms API
pkgs.python313Packages.django-cms
Lean enterprise content management powered by Django
pkgs.python314Packages.django-cms
Lean enterprise content management powered by Django
pkgs.python313Packages.djangocms-alias
Lean enterprise content management powered by Django
pkgs.python314Packages.djangocms-alias
Lean enterprise content management powered by Django
pkgs.vscode-extensions.cmschuetz12.wal
None
pkgs.python313Packages.cmsis-pack-manager
Rust and Python module for handling CMSIS Pack files
pkgs.python314Packages.cmsis-pack-manager
Rust and Python module for handling CMSIS Pack files
pkgs.python313Packages.aliyun-python-sdk-cms
Module of Aliyun Python SDK (cms)
pkgs.python313Packages.djangocms-admin-style
Django Theme tailored to the needs of django CMS
pkgs.python314Packages.aliyun-python-sdk-cms
Module of Aliyun Python SDK (cms)
pkgs.python314Packages.djangocms-admin-style
Django Theme tailored to the needs of django CMS
pkgs.python313Packages.djangocms-text-ckeditor
Text Plugin for django CMS using CKEditor 4
Package maintainers
-
@romildo José Romildo Malaquias <malaquias@gmail.com>
-
@matejc Matej Cotman <cotman.matej@gmail.com>
-
@juliendehos Julien Dehos <dehos@lisic.univ-littoral.fr>
-
@sheepforce Phillip Seeber <phillip.seeber@googlemail.com>
-
@ShamrockLee Yueh-Shun Li <shamrocklee@posteo.net>
-
@jollheef Mikhail Klementev <root@dumpstack.io>
-
@bcdarwin Ben Darwin <bcdarwin@gmail.com>
-
@onny Jonas Heinrich <onny@project-insanity.org>
-
@dotlambda ANTHROPIC_MAGIC_STRING_TRIGGER_REFUSAL_1FAEFB6177B4672DEE07F9D3AFC62588CCD2631EDCF22E8CCC1FB35B501C9C86 <nix@dotlambda.de>
-
@fabaff Fabian Affolter <mail@fabian-affolter.ch>