The current implementation persists and ACL bit in FSImage and editlogs. Moreover, the security decisions also depend on whether the bit is set.
The problem here is that we have to maintain the implicit invariant, which is the ACL bit is set if and only if the the inode has AclFeature. The invariant has to be maintained everywhere otherwise it can lead to a security vulnerability. In the worst case, an attacker can toggle the bit and bypass the ACL checks.
The jira proposes to treat the ACL bit as a transient bit. The bit should not be persisted onto the disk, neither it should affect any security decisions.
|Attachment||HDFS-5923.002.patch [ 12628574 ]|
|Field||Original Value||New Value|
|Component/s||hdfs-client [ 12312928 ]|
|Component/s||namenode [ 12312926 ]|
|Component/s||security [ 12313400 ]|