Linuxカーネルにおいて、以下の脆弱性が修正されました。ksmbdでは、sub_auth[2]を読み取る前に3つのサブオーソリティを要求します。parse_dacl()は各ACEのSIDをsid_unix_NFS_modeと比較し、一致した場合にはファイルモードとしてsid.sub_auth[2]を読み取ります。sid_unix_NFS_modeがプレフィックスS-1-5-88-3でnum_subauthが2の場合、compare_sids()はmin(num_subauth, 2)のサブオーソリティのみを比較するため、num_subauthが2でsub_authが{88, 3}のクライアントSIDが一致します。num_subauthが2でかつACEがセキュリティディスクリプタの最後に配置されている場合、sub_auth[2]はend_of_aclの4バイト先を指します。アウトオブバンドのバイトは低9ビットにマスクされ、ファイルのPOSIXモードとして適用されますが、これは望ましい動作ではありません。この問題を修正するため、SIDが読み取られる前に3つ目のサブオーソリティを実際に持つことを強制するようにしました。
|