diff options
| author | Guanglei Zhu <zhugl3@xiaopeng.com> | 2026-09-16 19:53:07 +0800 |
|---|---|---|
| committer | John Johansen <john.johansen@canonical.com> | 2026-10-29 08:30:53 -0700 |
| commit | afe5d5a747393cb3d00795db31d7fce5108a766a (patch) | |
| tree | 1ee7fc4af7a1e1669a9dbd2bcf22a8bb137cb850 /scripts/Makefile.thinlto | |
| parent | fcd621debff51f09cc665e1063a6025d7c1bfd48 (diff) | |
| download | linux-afe5d5a747393cb3d00795db31d7fce5108a766a.tar.gz linux-afe5d5a747393cb3d00795db31d7fce5108a766a.zip | |
apparmor: check accept index + 1 is in bounds
aa_lookup_condperms() returns perms[index + 1] when an accept entry has
ACCEPT_FLAG_OWNER set and the subject uid does not match the file uid,
so such an entry consumes two slots in the perms table. But
verify_dfa_accept_index() only checks that index is within the perms
table, so a policy that sets the owner flag on the last entry is
accepted, and the runtime lookup then reads perms[index + 1] one entry
past the end of the table.
The perms table is allocated by unpack_perms_table() with a u16 size
read from the policy blob, so a crafted policy can place the owner flag
at index size - 1 to reach the out-of-bounds read.
Check that index + 1 is also in bounds when the owner flag is set.
Fixes: 6f442d42c0d89 ("apparmor: fix profile verification and enable it")
Cc: stable@vger.kernel.org
Signed-off-by: Guanglei Zhu <zhugl3@xiaopeng.com>
Signed-off-by: John Johansen <john.johansen@canonical.com>
Diffstat (limited to 'scripts/Makefile.thinlto')
0 files changed, 0 insertions, 0 deletions
