Cloudanix VulnDB

CVE-2016-5404

Medium · 6.5

CVSS

6.5

EPSS

2.6%

Published

Sep 7, 2016

CISA due date

—

Cloudanix analysis

Schedule a fix SSVC: Track

A missing check let some users cancel certificates they were never supposed to be able to cancel, which can break access to systems that depend on those certificates.

Exploitation
Remote Authenticated
Attacker needs
Low Privilege
Complexity
Low
Impact
Denial Of Service
Component
Application
Class
Authorization Bypass
Remediation
Upgrade
Effort
Medium
Patch risk
Low

What it actually does

Missing permission check in the cert_revoke command allows any user holding only the retrieve certificate permission to invoke revocation on arbitrary certificates.

Why it matters to the business

Organizations lose control over certificate lifecycle, enabling disruption of services that rely on valid certificates and forcing emergency re-issuance or downtime.

How an attack unfolds

An authenticated user with retrieve-certificate rights crafts a cert_revoke request for a target certificate; because the required revoke permission is never enforced, the server accepts and processes the revocation, immediately invalidating the certificate for all relying parties.

How to fix it

Upgrade FreeIPA to a version that enforces the revoke-certificate permission on the cert_revoke command; restrict retrieve-certificate rights to the minimum set of accounts that truly require them; monitor certificate revocation logs for unexpected entries.

How to confirm the fix worked

Review the source or package changelog for the permission check addition; attempt a revocation with a test account that possesses only retrieve-certificate rights and confirm the operation is now denied; inspect audit logs for the presence of the permission check.

Typical attack path

  1. Obtain valid authentication credentials to the FreeIPA instance
  2. Acquire retrieve-certificate permission through normal role assignment or misconfiguration
  3. Submit a crafted cert_revoke command specifying an arbitrary certificate serial or subject
  4. Observe successful revocation without any permission error
  5. Leverage resulting service disruption or conduct follow-on attacks against systems that now lack valid certificates

How to detect it

Search FreeIPA audit and command logs for cert_revoke invocations performed by accounts lacking the revoke-certificate permission; correlate with certificate status changes that lack corresponding administrative approval.

What your security team should do

  • Prioritize patching all FreeIPA servers to a version containing the permission enforcement fix
  • Audit current role assignments and remove retrieve-certificate grants from accounts that do not also hold revoke-certificate rights
  • Enable and retain detailed audit logging for certificate operations
  • Establish a process to verify certificate validity status after any administrative change

The record

The cert_revoke command in FreeIPA does not check for the "revoke certificate" permission, which allows remote authenticated users to revoke arbitrary certificates by leveraging the "retrieve certificate" permission.

Affected packages

Ecosystem Package Introduced Fixed
Chainguard freeipa 0 4.12.5-r0
Chainguard freeipa-doc 0 4.12.5-r0
Chainguard py3.13-ipaclient 0 4.12.5-r0
Chainguard py3.13-ipalib 0 4.12.5-r0
Chainguard py3.13-ipaplatform 0 4.12.5-r0
Chainguard py3.13-ipapython 0 4.12.5-r0
Chainguard py3.13-ipaserver 0 4.12.5-r0
Chainguard py3.13-ipatests 0 4.12.5-r0
Debian:12 freeipa 0 4.3.2-5
Debian:13 freeipa 0 4.3.2-5
Red Hat:enterprise_linux:6::client ipa 0 0:3.0.0-50.el6_8.2
Red Hat:enterprise_linux:6::client ipa-admintools 0 0:3.0.0-50.el6_8.2
Red Hat:enterprise_linux:6::client ipa-client 0 0:3.0.0-50.el6_8.2
Red Hat:enterprise_linux:6::client ipa-debuginfo 0 0:3.0.0-50.el6_8.2
Red Hat:enterprise_linux:6::client ipa-python 0 0:3.0.0-50.el6_8.2
Red Hat:enterprise_linux:6::client ipa-server 0 0:3.0.0-50.el6_8.2
Red Hat:enterprise_linux:6::client ipa-server-selinux 0 0:3.0.0-50.el6_8.2
Red Hat:enterprise_linux:6::client ipa-server-trust-ad 0 0:3.0.0-50.el6_8.2
Red Hat:enterprise_linux:6::computenode ipa 0 0:3.0.0-50.el6_8.2
Red Hat:enterprise_linux:6::computenode ipa-admintools 0 0:3.0.0-50.el6_8.2
Red Hat:enterprise_linux:6::computenode ipa-client 0 0:3.0.0-50.el6_8.2
Red Hat:enterprise_linux:6::computenode ipa-debuginfo 0 0:3.0.0-50.el6_8.2
Red Hat:enterprise_linux:6::computenode ipa-python 0 0:3.0.0-50.el6_8.2
Red Hat:enterprise_linux:6::computenode ipa-server 0 0:3.0.0-50.el6_8.2
Red Hat:enterprise_linux:6::computenode ipa-server-selinux 0 0:3.0.0-50.el6_8.2
Red Hat:enterprise_linux:6::computenode ipa-server-trust-ad 0 0:3.0.0-50.el6_8.2
Red Hat:enterprise_linux:6::server ipa 0 0:3.0.0-50.el6_8.2
Red Hat:enterprise_linux:6::server ipa-admintools 0 0:3.0.0-50.el6_8.2
Red Hat:enterprise_linux:6::server ipa-client 0 0:3.0.0-50.el6_8.2
Red Hat:enterprise_linux:6::server ipa-debuginfo 0 0:3.0.0-50.el6_8.2
Red Hat:enterprise_linux:6::server ipa-python 0 0:3.0.0-50.el6_8.2
Red Hat:enterprise_linux:6::server ipa-server 0 0:3.0.0-50.el6_8.2
Red Hat:enterprise_linux:6::server ipa-server-selinux 0 0:3.0.0-50.el6_8.2
Red Hat:enterprise_linux:6::server ipa-server-trust-ad 0 0:3.0.0-50.el6_8.2
Red Hat:enterprise_linux:6::workstation ipa 0 0:3.0.0-50.el6_8.2
Red Hat:enterprise_linux:6::workstation ipa-admintools 0 0:3.0.0-50.el6_8.2
Red Hat:enterprise_linux:6::workstation ipa-client 0 0:3.0.0-50.el6_8.2
Red Hat:enterprise_linux:6::workstation ipa-debuginfo 0 0:3.0.0-50.el6_8.2
Red Hat:enterprise_linux:6::workstation ipa-python 0 0:3.0.0-50.el6_8.2
Red Hat:enterprise_linux:6::workstation ipa-server 0 0:3.0.0-50.el6_8.2
Red Hat:enterprise_linux:6::workstation ipa-server-selinux 0 0:3.0.0-50.el6_8.2
Red Hat:enterprise_linux:6::workstation ipa-server-trust-ad 0 0:3.0.0-50.el6_8.2
Red Hat:enterprise_linux:7::client ipa 0 0:4.2.0-15.el7_2.19
Red Hat:enterprise_linux:7::client ipa-admintools 0 0:4.2.0-15.el7_2.19
Red Hat:enterprise_linux:7::client ipa-client 0 0:4.2.0-15.el7_2.19
Red Hat:enterprise_linux:7::client ipa-debuginfo 0 0:4.2.0-15.el7_2.19
Red Hat:enterprise_linux:7::client ipa-python 0 0:4.2.0-15.el7_2.19
Red Hat:enterprise_linux:7::client ipa-server 0 0:4.2.0-15.el7_2.19
Red Hat:enterprise_linux:7::client ipa-server-dns 0 0:4.2.0-15.el7_2.19
Red Hat:enterprise_linux:7::client ipa-server-trust-ad 0 0:4.2.0-15.el7_2.19
Red Hat:enterprise_linux:7::computenode ipa 0 0:4.2.0-15.el7_2.19
Red Hat:enterprise_linux:7::computenode ipa-admintools 0 0:4.2.0-15.el7_2.19
Red Hat:enterprise_linux:7::computenode ipa-client 0 0:4.2.0-15.el7_2.19
Red Hat:enterprise_linux:7::computenode ipa-debuginfo 0 0:4.2.0-15.el7_2.19
Red Hat:enterprise_linux:7::computenode ipa-python 0 0:4.2.0-15.el7_2.19
Red Hat:enterprise_linux:7::computenode ipa-server 0 0:4.2.0-15.el7_2.19
Red Hat:enterprise_linux:7::computenode ipa-server-dns 0 0:4.2.0-15.el7_2.19
Red Hat:enterprise_linux:7::computenode ipa-server-trust-ad 0 0:4.2.0-15.el7_2.19
Red Hat:enterprise_linux:7::server ipa 0 0:4.2.0-15.el7_2.19
Red Hat:enterprise_linux:7::server ipa-admintools 0 0:4.2.0-15.el7_2.19
Red Hat:enterprise_linux:7::server ipa-client 0 0:4.2.0-15.el7_2.19
Red Hat:enterprise_linux:7::server ipa-debuginfo 0 0:4.2.0-15.el7_2.19
Red Hat:enterprise_linux:7::server ipa-python 0 0:4.2.0-15.el7_2.19
Red Hat:enterprise_linux:7::server ipa-server 0 0:4.2.0-15.el7_2.19
Red Hat:enterprise_linux:7::server ipa-server-dns 0 0:4.2.0-15.el7_2.19
Red Hat:enterprise_linux:7::server ipa-server-trust-ad 0 0:4.2.0-15.el7_2.19
Red Hat:enterprise_linux:7::workstation ipa 0 0:4.2.0-15.el7_2.19
Red Hat:enterprise_linux:7::workstation ipa-admintools 0 0:4.2.0-15.el7_2.19
Red Hat:enterprise_linux:7::workstation ipa-client 0 0:4.2.0-15.el7_2.19
Red Hat:enterprise_linux:7::workstation ipa-debuginfo 0 0:4.2.0-15.el7_2.19
Red Hat:enterprise_linux:7::workstation ipa-python 0 0:4.2.0-15.el7_2.19
Red Hat:enterprise_linux:7::workstation ipa-server 0 0:4.2.0-15.el7_2.19
Red Hat:enterprise_linux:7::workstation ipa-server-dns 0 0:4.2.0-15.el7_2.19
Red Hat:enterprise_linux:7::workstation ipa-server-trust-ad 0 0:4.2.0-15.el7_2.19
Ubuntu:Pro:14.04:LTS freeipa 0 3.3.4-0ubuntu3.1+esm1
Ubuntu:Pro:16.04:LTS freeipa 0 4.3.1-0ubuntu1+esm1

Related vulnerabilities