Loading
apparmor: validate DFA start states are in bounds in unpack_pdb
Start states are read from untrusted data and used as indexes into the DFA state tables. The aa_dfa_next() function call in unpack_pdb() will access dfa->tables[YYTD_ID_BASE][start], and if the start state exceeds the number of states in the DFA, this results in an out-of-bound read. ================================================================== BUG: KASAN: slab-out-of-bounds in aa_dfa_next+0x2a1/0x360 Read of size 4 at addr ffff88811956fb90 by task su/1097 ... Reject policies with out-of-bounds start states during unpacking to prevent the issue. Fixes: ad5ff3db ("AppArmor: Add ability to load extended policy") Reported-by:Qualys Security Advisory <qsa@qualys.com> Tested-by:
Salvatore Bonaccorso <carnil@debian.org> Reviewed-by:
Georgia Garcia <georgia.garcia@canonical.com> Reviewed-by:
Cengiz Can <cengiz.can@canonical.com> Signed-off-by:
Massimiliano Pellizzer <massimiliano.pellizzer@canonical.com> Signed-off-by:
John Johansen <john.johansen@canonical.com>