View Issue Details

IDProjectCategoryView StatusLast Update
0012376Rocky-Linux-10selinux-policypublic2026-04-01 14:52
ReporterHiroshi Nishida Assigned To 
PrioritynormalSeverityminorReproducibilityalways
Status newResolutionopen 
OSRockyOS Version10.1 
Product Version10.1 
Summary0012376: security_policyvers() returns 33 but only policy.35 exists on disk
Description  ## Environment
  - Rocky Linux 10.1
  - libsepol-3.9-1.el10.x86_64
  - sestatus: Max kernel policy version: 33
  - Only policy.35 exists under /etc/selinux/targeted/policy/

  ## Problem
  security_policyvers() returns 33, but no policy.33 file exists on disk. The only
  installed binary policy file is policy.35. Software that locates the binary policy
  by searching downward from security_policyvers() will never find it.

  Confirmed: the internal binary version of policy.35 (read at offset 16 in the
  policydb) is 35. sestatus still reports "Max kernel policy version: 33".

  ## Root Cause
  Upstream libsepol defines POLICYDB_VERSION_MAX = 33. Rocky Linux 10.1 ships
  policy.35, which uses a downstream policy format version (35) not present in
  upstream libsepol. security_policyvers() reports the upstream ceiling (33),
  creating a mismatch with the actual on-disk file version.

  ## Suggested Fix
  Either:
  1. Ship policy.33 as a compatibility symlink to policy.35, or
  2. Update libsepol to expose POLICYDB_VERSION_MAX = 35 so that
     security_policyvers() reflects the actual on-disk policy version.

  ## Additional Notes
  - Rocky Linux 9.7 is unaffected: policy.33 on disk, internal version 33,
    matches security_policyvers().
  - Policy versions 34 and 35 do not appear in upstream libsepol source or
    changelog — they appear to be downstream extensions.
Steps To Reproduce  1. Install Rocky Linux 10.1 with SELinux enabled (targeted policy)
  2. Run: sestatus
     → "Max kernel policy version: 33"
  3. Run: ls /etc/selinux/targeted/policy/
     → Only policy.35 is present, no policy.33
  4. Run: python3 -c "import selinux; print(selinux.security_policyvers())"
     (or any program calling security_policyvers() from libsepol)
     → Returns 33
Tagsselinux

Activities

There are no notes attached to this issue.

Issue History

Date Modified Username Field Change
2026-04-01 14:52 Hiroshi Nishida New Issue
2026-04-01 14:52 Hiroshi Nishida Tag Attached: selinux