CVE-2022-3560
Medium · 5.5CVSS
5.5
EPSS
0.2%
Published
Feb 2, 2023
CISA due date
—
Cloudanix analysis
A bug in a Linux tool used to sign software could let someone already on the machine read private files they are not supposed to see.
- Exploitation
- Local Privilege
- Attacker needs
- Low Privilege
- Complexity
- Low
- Impact
- Data Exposure
- Component
- Application
- Class
- Path Traversal
- Remediation
- Upgrade
- Effort
- Medium
- Patch risk
- Low
What it actually does
The pesign systemd service initialization script applies ACLs to /etc/pki/pesign and /run/pesign without validating whether the target paths are symbolic links, permitting an attacker-controlled link to redirect the operation and grant read access to arbitrary files.
Why it matters to the business
Local users or compromised processes can read sensitive configuration, keys, or other privileged files on affected Linux systems, increasing the risk of credential exposure and further lateral movement inside the environment.
How an attack unfolds
An attacker with local access creates a symbolic link inside the pesign-managed directories that points to a privileged file, then triggers or waits for the service script to run; the script follows the link and sets permissive ACLs, allowing the attacker to read the target file.
How to fix it
Upgrade pesign to a version that validates paths before applying ACLs; until a fix is available, consider disabling the pesign service if not required or restrict membership in the pesign group to only trusted accounts.
How to confirm the fix worked
Inspect the service script for explicit symlink or path validation logic; confirm the service no longer follows attacker-controlled links when setting ACLs; re-test after applying package updates from distribution repositories.
Typical attack path
- Obtain local user or process access on a system running the pesign service
- Create a symbolic link inside /etc/pki/pesign or /run/pesign pointing to a desired privileged file
- Trigger the pesign service unit (or wait for its next execution) so the ACL-setting script processes the link
- Read the now-accessible target file using the granted ACL
How to detect it
Review system logs for pesign service invocations, unexpected ACL modifications on /etc/pki/pesign or /run/pesign, and creation of symbolic links inside those directories; correlate with user activity that coincides with service restarts.
- symlink creation under /run/pesign
- ACL modification events referencing /etc/pki/pesign
- pesign.service unit activation logs
What your security team should do
- Apply available distribution updates for pesign as soon as they are released
- Audit systems for unnecessary pesign group membership and remove unneeded users
- Monitor package repositories for fixed versions of pesign on Fedora and RHEL
The record
A flaw was found in pesign. The pesign package provides a systemd service used to start the pesign daemon. This service unit runs a script to set ACLs for /etc/pki/pesign and /run/pesign directories to grant access privileges to users in the 'pesign' group. However, the script doesn't check for symbolic links. This could allow an attacker to gain access to privileged files and directories via a path traversal attack.
Affected packages
| Ecosystem | Package | Introduced | Fixed |
|---|---|---|---|
| AlmaLinux:8 | pesign | 0 | 0.112-27.el8_7 |
| AlmaLinux:9 | pesign | 0 | 115-6.el9_1 |
| Debian:11 | pesign | 0 | No fix |
| Debian:12 | pesign | 0 | No fix |
| Debian:13 | pesign | 0 | 116-1 |
| Red Hat:enterprise_linux:7::client | pesign | 0 | 0:0.109-11.el7_9 |
| Red Hat:enterprise_linux:7::client | pesign-debuginfo | 0 | 0:0.109-11.el7_9 |
| Red Hat:enterprise_linux:7::computenode | pesign | 0 | 0:0.109-11.el7_9 |
| Red Hat:enterprise_linux:7::computenode | pesign-debuginfo | 0 | 0:0.109-11.el7_9 |
| Red Hat:enterprise_linux:7::server | pesign | 0 | 0:0.109-11.el7_9 |
| Red Hat:enterprise_linux:7::server | pesign-debuginfo | 0 | 0:0.109-11.el7_9 |
| Red Hat:enterprise_linux:7::workstation | pesign | 0 | 0:0.109-11.el7_9 |
| Red Hat:enterprise_linux:7::workstation | pesign-debuginfo | 0 | 0:0.109-11.el7_9 |
| Red Hat:enterprise_linux:8::appstream | pesign | 0 | 0:0.112-27.el8_7 |
| Red Hat:enterprise_linux:8::appstream | pesign-debuginfo | 0 | 0:0.112-27.el8_7 |
| Red Hat:enterprise_linux:8::appstream | pesign-debugsource | 0 | 0:0.112-27.el8_7 |
| Red Hat:enterprise_linux:9::appstream | pesign | 0 | 0:115-6.el9_1 |
| Red Hat:enterprise_linux:9::appstream | pesign-debuginfo | 0 | 0:115-6.el9_1 |
| Red Hat:enterprise_linux:9::appstream | pesign-debugsource | 0 | 0:115-6.el9_1 |
| Red Hat:rhel_aus:8.2::appstream | pesign | 0 | 0:0.112-25.el8_2.1 |
| Red Hat:rhel_aus:8.2::appstream | pesign-debuginfo | 0 | 0:0.112-25.el8_2.1 |
| Red Hat:rhel_aus:8.2::appstream | pesign-debugsource | 0 | 0:0.112-25.el8_2.1 |
| Red Hat:rhel_e4s:8.1::appstream | pesign | 0 | 0:0.112-25.el8_1.1 |
| Red Hat:rhel_e4s:8.1::appstream | pesign-debuginfo | 0 | 0:0.112-25.el8_1.1 |
| Red Hat:rhel_e4s:8.1::appstream | pesign-debugsource | 0 | 0:0.112-25.el8_1.1 |
| Red Hat:rhel_e4s:8.2::appstream | pesign | 0 | 0:0.112-25.el8_2.1 |
| Red Hat:rhel_e4s:8.2::appstream | pesign-debuginfo | 0 | 0:0.112-25.el8_2.1 |
| Red Hat:rhel_e4s:8.2::appstream | pesign-debugsource | 0 | 0:0.112-25.el8_2.1 |
| Red Hat:rhel_eus:8.4::appstream | pesign | 0 | 0:0.112-25.el8_4.1 |
| Red Hat:rhel_eus:8.4::appstream | pesign-debuginfo | 0 | 0:0.112-25.el8_4.1 |
| Red Hat:rhel_eus:8.4::appstream | pesign-debugsource | 0 | 0:0.112-25.el8_4.1 |
| Red Hat:rhel_eus:8.6::appstream | pesign | 0 | 0:0.112-27.el8_6 |
| Red Hat:rhel_eus:8.6::appstream | pesign-debuginfo | 0 | 0:0.112-27.el8_6 |
| Red Hat:rhel_eus:8.6::appstream | pesign-debugsource | 0 | 0:0.112-27.el8_6 |
| Red Hat:rhel_eus:9.0::appstream | pesign | 0 | 0:115-6.el9_0 |
| Red Hat:rhel_eus:9.0::appstream | pesign-debuginfo | 0 | 0:115-6.el9_0 |
| Red Hat:rhel_eus:9.0::appstream | pesign-debugsource | 0 | 0:115-6.el9_0 |
| Red Hat:rhel_tus:8.2::appstream | pesign | 0 | 0:0.112-25.el8_2.1 |
| Red Hat:rhel_tus:8.2::appstream | pesign-debuginfo | 0 | 0:0.112-25.el8_2.1 |
| Red Hat:rhel_tus:8.2::appstream | pesign-debugsource | 0 | 0:0.112-25.el8_2.1 |
| Rocky Linux:8 | pesign | 0 | 0:0.112-27.el8_7 |
| Rocky Linux:9 | pesign | 0 | 0:115-6.el9_1.rocky.2 |
| SUSE:Enterprise Storage 7 | pesign | 0 | 0.112-150000.4.15.1 |
| SUSE:Enterprise Storage 7.1 | pesign | 0 | 0.112-150000.4.15.1 |
| SUSE:Linux Enterprise High Performance Computing 15 SP1-LTSS | pesign | 0 | 0.112-150000.4.15.1 |
| SUSE:Linux Enterprise High Performance Computing 15 SP2-LTSS | pesign | 0 | 0.112-150000.4.15.1 |
| SUSE:Linux Enterprise High Performance Computing 15 SP3-ESPOS | pesign | 0 | 0.112-150000.4.15.1 |
| SUSE:Linux Enterprise High Performance Computing 15 SP3-LTSS | pesign | 0 | 0.112-150000.4.15.1 |
| SUSE:Linux Enterprise Module for Basesystem 15 SP4 | pesign | 0 | 0.112-150000.4.15.1 |
| SUSE:Linux Enterprise Real Time 15 SP3 | pesign | 0 | 0.112-150000.4.15.1 |
| SUSE:Linux Enterprise Server 15 SP1-LTSS | pesign | 0 | 0.112-150000.4.15.1 |
| SUSE:Linux Enterprise Server 15 SP2-LTSS | pesign | 0 | 0.112-150000.4.15.1 |
| SUSE:Linux Enterprise Server 15 SP3-LTSS | pesign | 0 | 0.112-150000.4.15.1 |
| SUSE:Linux Enterprise Server for SAP Applications 15 SP1 | pesign | 0 | 0.112-150000.4.15.1 |
| SUSE:Linux Enterprise Server for SAP Applications 15 SP2 | pesign | 0 | 0.112-150000.4.15.1 |
| SUSE:Linux Enterprise Server for SAP Applications 15 SP3 | pesign | 0 | 0.112-150000.4.15.1 |
| SUSE:Manager Proxy 4.2 | pesign | 0 | 0.112-150000.4.15.1 |
| SUSE:Manager Server 4.2 | pesign | 0 | 0.112-150000.4.15.1 |
| Ubuntu:16.04:LTS | pesign | 0 | No fix |
| Ubuntu:18.04:LTS | pesign | 0 | No fix |
| Ubuntu:20.04:LTS | pesign | 0 | No fix |
| Ubuntu:22.04:LTS | pesign | 0 | No fix |
| Ubuntu:24.04:LTS | pesign | 0 | No fix |
| Ubuntu:24.10 | pesign | 0 | No fix |
| Ubuntu:25.04 | pesign | 0 | No fix |
| Ubuntu:25.10 | pesign | 0 | No fix |
| Ubuntu:Pro:16.04:LTS | pesign | 0 | No fix |
| Ubuntu:Pro:18.04:LTS | pesign | 0 | No fix |
| Ubuntu:Pro:20.04:LTS | pesign | 0 | No fix |
| openSUSE:Leap 15.4 | pesign | 0 | 0.112-150000.4.15.1 |
| openSUSE:Tumbleweed | pesign | 0 | 113-11.1 |
Related vulnerabilities
- CVE-2022-1249 A NULL pointer dereference flaw was found in pesign's cms_set_pw_data() function of the… Also affects pesign
- CVE-2026-81163 Improper Limitation of a Pathname to a Restricted Directory ('Path Traversal')… CWE-22
- CVE-2026-112049 Vita3K before build 4187 contains a path traversal (zip slip) vulnerability in… CWE-22
- CVE-2026-112005 WhoDB 0.104.0 before 0.135.0 contains a path traversal vulnerability that allows remote… CWE-22
- CVE-2026-61702 OpenPrinting CUPS is an open source printing system for Linux and other Unix-like… CWE-22
- CVE-2026-104871 The Angular SSR is a server-rise rendering tool for Angular applications. CWE-22
- CVE-2026-102991 Mako is a template library written in Python. CWE-22
- CVE-2026-101894 The decompress package for Node.js extracts archives. CWE-22