FreeBSD VuXML: Documenting security issues in FreeBSD and the FreeBSD Ports Collection

nghttp2 -- Denial of service due to NULL pointer dereference

Affected packages
1.10.0 <= libnghttp2 < 1.31.1
1.10.0 <= nghttp2 < 1.31.1

Details

VuXML ID 1fccb25e-8451-438c-a2b9-6a021e4d7a31
Discovery 2018-04-04
Entry 2018-04-13

nghttp2 blog:

If ALTSVC frame is received by libnghttp2 and it is larger than it can accept, the pointer field which points to ALTSVC frame payload is left NULL. Later libnghttp2 attempts to access another field through the pointer, and gets segmentation fault.

ALTSVC frame is defined by RFC 7838.

The largest frame size libnghttp2 accept is by default 16384 bytes.

Receiving ALTSVC frame is disabled by default. Application has to enable it explicitly by calling nghttp2_option_set_builtin_recv_extension_type(opt, NGHTTP2_ALTSVC).

Transmission of ALTSVC is always enabled, and it does not cause this vulnerability.

ALTSVC frame is expected to be sent by server, and received by client as defined in RFC 7838.

Client and server are both affected by this vulnerability if the reception of ALTSVC frame is enabled. As written earlier, it is useless to enable reception of ALTSVC frame on server side. So, server is generally safe unless application accidentally enabled the reception of ALTSVC frame.

References

CVE Name CVE-2018-1000168
URL https://nghttp2.org/blog/2018/04/12/nghttp2-v1-31-1/