A server could send a value approching unsinged int max number of keyboard prompt requests which could result in an unchecked interger overflow. The value would then be used to allocate memory causing a possible memory write out of bounds error.
Acknowledgments: Name: the libssh2 project Upstream: Chris Coulson (Canonical Ltd.)
Function userauth_keyboard_interactive() in userauth.c does not properly check the number of prompts sent by the server and it uses the value in a computation that could result in an integer overflow. The result would then be used to allocate memory and can allow writing beyond the limits of the allocated buffer.
The attacker needs to: - trick the user to connect to a malicious server or - trick the user to connect to a compromised server or - intercept and modify the traffic For these reasons User Interaction (UI) is set to Required(R) and Attack Complexity (AC) is set to High (H).
The flaw can be triggered only on 32bit architectures or when the program is compiled against the 32bit version of the libssh2 library. The unchecked operations involve a size_t operand the number of prompts, stored in a uint32_t variable. On 64bit architectures, where size_t is 8 bytes long, the 4 bytes that represent the number of prompts and that are controlled by the attacker cannot make the multiplication overflow.
Upstream patch: https://github.com/libssh2/libssh2/commit/dc109a7f518757741590bb993c0c8412928ccec2
Statement: This flaw was present in libssh2 packages included in Red Hat Virtualization Hypervisor and Management Appliance, however libssh2 in these hosts is never exposed to malicious clients or servers.
Reference: https://www.openwall.com/lists/oss-security/2019/03/18/3 Upstream Patch: https://libssh2.org/1.8.0-CVE/CVE-2019-3856.patch
External References: https://www.libssh2.org/CVE-2019-3856.html
Created libssh tracking bugs for this issue: Affects: fedora-all [bug 1690246] Created mingw-libssh2 tracking bugs for this issue: Affects: fedora-all [bug 1690247]
Created mingw-libssh2 tracking bugs for this issue: Affects: epel-7 [bug 1690248]
Created libssh2 tracking bugs for this issue: Affects: fedora-all [bug 1690408]
This issue has been addressed in the following products: Red Hat Enterprise Linux 7 Via RHSA-2019:0679 https://access.redhat.com/errata/RHSA-2019:0679
This issue has been addressed in the following products: Red Hat Enterprise Linux 8 Via RHSA-2019:1175 https://access.redhat.com/errata/RHSA-2019:1175
This issue has been addressed in the following products: Red Hat Enterprise Linux 6 Via RHSA-2019:1652 https://access.redhat.com/errata/RHSA-2019:1652
This issue has been addressed in the following products: Red Hat Enterprise Linux 7.5 Extended Update Support Via RHSA-2019:1791 https://access.redhat.com/errata/RHSA-2019:1791
This issue has been addressed in the following products: Red Hat Enterprise Linux 7.4 Extended Update Support Via RHSA-2019:1943 https://access.redhat.com/errata/RHSA-2019:1943
This issue has been addressed in the following products: Red Hat Enterprise Linux 7.3 Advanced Update Support Red Hat Enterprise Linux 7.3 Update Services for SAP Solutions Red Hat Enterprise Linux 7.3 Telco Extended Update Support Via RHSA-2019:2399 https://access.redhat.com/errata/RHSA-2019:2399