============================================================== == Subject: "server signing = mandatory" not enforced == == CVE ID#: CVE-2016-2114 == == Versions: Samba 4.0.0 to 4.4.0 == == Summary: Due to a bug Samba doesn't enforce required == smb signing, even if explicitly configured. In == addition the default for the active directory == domain controller case was wrong. == ============================================================== =========== Description =========== Due to a regression introduced in Samba 4.0.0, an explicit "server signing = mandatory" in the [global] section of the smb.conf was not enforced for clients using the SMB1 protocol. As a result it does not enforce smb signing and allows man in the middle attacks. This problem applies to all possible server roles: standalone server, member server, classic primary domain controller, classic backup domain controller and active directory domain controller. In addition, when Samba is configured with "server role = active directory domain controller" the effective default for the "server signing" option should be "mandatory". During the early development of Samba 4 we had a new experimental file server located under source4/smb_server. But before the final 4.0.0 release we switched back to the file server under source3/smbd. But the logic for the correct default of "server signing" was not ported correctly ported. Note that the default for server roles other than active directory domain controller, is "off" because of performance reasons. ================== Patch Availability ================== A patch addressing this defect has been posted to https://www.samba.org/samba/security/ Additionally, Samba 4.4.2, 4.3.8 and 4.2.11 have been issued as security releases to correct the defect. Samba vendors and administrators running affected versions are advised to upgrade or apply the patch as soon as possible. Note that Samba 4.4.1, 4.3.7 and 4.2.10 were privately released to vendors, but had a regression, which is fixed in 4.4.2, 4.3.8 and 4.2.11. ========== Workaround ========== An explicit "server signing = mandatory" in the [global] together with "server min protocol = SMB2", should prevent connections without signing protection. But that means older clients without support for SMB2 (or higher) might become unable to connect. ======= Credits ======= This vulnerability was discovered and researched by Stefan Metzmacher of SerNet (https://samba.plus) and the Samba Team (https://www.samba.org). He provides the fixes in collaboration with the Samba Team.