{
  "threat_severity" : "Low",
  "public_date" : "2021-08-16T00:00:00Z",
  "bugzilla" : {
    "description" : "nbdkit: NBD_OPT_STRUCTURED_REPLY injection on STARTTLS",
    "id" : "1994695",
    "url" : "https://bugzilla.redhat.com/show_bug.cgi?id=1994695"
  },
  "cvss3" : {
    "cvss3_base_score" : "3.5",
    "cvss3_scoring_vector" : "CVSS:3.1/AV:N/AC:L/PR:L/UI:R/S:U/C:N/I:N/A:L",
    "status" : "verified"
  },
  "cwe" : "CWE-924",
  "details" : [ "A flaw was found in nbdkit due to to improperly caching plaintext state across the STARTTLS encryption boundary. A MitM attacker could use this flaw to inject a plaintext NBD_OPT_STRUCTURED_REPLY before proxying everything else a client sends to the server, potentially leading the client to terminate the NBD session. The highest threat from this vulnerability is to system availability.", "A flaw was found in nbdkit due to to improperly caching plaintext state across the STARTTLS encryption boundary. A MitM attacker could use this flaw to inject a plaintext NBD_OPT_STRUCTURED_REPLY before proxying everything else a client sends to the server, potentially leading the client to terminate the NBD session. The highest threat from this vulnerability is to system availability." ],
  "statement" : "Red Hat Enterprise Linux 7 is not affected by this flaw as it ships an old version of `nbdkit` (v1.8.0) that does not include support for NBD Structured Replies.",
  "acknowledgement" : "This issue was discovered by Eric Blake (Red Hat).",
  "affected_release" : [ {
    "product_name" : "Advanced Virtualization for RHEL 8.5.0.Z",
    "release_date" : "2022-02-02T00:00:00Z",
    "advisory" : "RHSA-2022:0397",
    "cpe" : "cpe:/a:redhat:advanced_virtualization:8.5::el8",
    "package" : "virt:av-8050020220115095224.c5368500"
  }, {
    "product_name" : "Advanced Virtualization for RHEL 8.5.0.Z",
    "release_date" : "2022-02-02T00:00:00Z",
    "advisory" : "RHSA-2022:0397",
    "cpe" : "cpe:/a:redhat:advanced_virtualization:8.5::el8",
    "package" : "virt-devel:av-8050020220115095224.c5368500"
  }, {
    "product_name" : "Red Hat Enterprise Linux 8",
    "release_date" : "2022-05-10T00:00:00Z",
    "advisory" : "RHSA-2022:1759",
    "cpe" : "cpe:/a:redhat:enterprise_linux:8",
    "package" : "virt-devel:rhel-8060020220408104655.d63f516d"
  }, {
    "product_name" : "Red Hat Enterprise Linux 8",
    "release_date" : "2022-05-10T00:00:00Z",
    "advisory" : "RHSA-2022:1759",
    "cpe" : "cpe:/a:redhat:enterprise_linux:8",
    "package" : "virt:rhel-8060020220408104655.d63f516d"
  } ],
  "package_state" : [ {
    "product_name" : "Red Hat Enterprise Linux 7",
    "fix_state" : "Not affected",
    "package_name" : "nbdkit",
    "cpe" : "cpe:/o:redhat:enterprise_linux:7"
  }, {
    "product_name" : "Red Hat Enterprise Linux 8 Advanced Virtualization",
    "fix_state" : "Fix deferred",
    "package_name" : "virt:8.2/nbdkit",
    "cpe" : "cpe:/a:redhat:advanced_virtualization:8::el8"
  }, {
    "product_name" : "Red Hat Enterprise Linux 8 Advanced Virtualization",
    "fix_state" : "Out of support scope",
    "package_name" : "virt:8.3/nbdkit",
    "cpe" : "cpe:/a:redhat:advanced_virtualization:8::el8"
  }, {
    "product_name" : "Red Hat Enterprise Linux 8 Advanced Virtualization",
    "fix_state" : "Affected",
    "package_name" : "virt:av/nbdkit",
    "cpe" : "cpe:/a:redhat:advanced_virtualization:8::el8"
  }, {
    "product_name" : "Red Hat Enterprise Linux 9",
    "fix_state" : "Not affected",
    "package_name" : "nbdkit",
    "cpe" : "cpe:/o:redhat:enterprise_linux:9"
  }, {
    "product_name" : "Red Hat Virtualization 4",
    "fix_state" : "Not affected",
    "package_name" : "nbdkit",
    "cpe" : "cpe:/o:redhat:rhev_hypervisor:4"
  } ],
  "references" : [ "https://www.cve.org/CVERecord?id=CVE-2021-3716\nhttps://nvd.nist.gov/vuln/detail/CVE-2021-3716\nhttps://listman.redhat.com/archives/libguestfs/2021-August/msg00083.html\nhttps://www.openwall.com/lists/oss-security/2021/08/18/2" ],
  "name" : "CVE-2021-3716",
  "mitigation" : {
    "value" : "In general, it is recommended to use forced TLS (--tls=require) to avoid MitM attacks in the first place. If opportunistic encryption must be used (--tls=yes), ensure that clients that want to use TLS will request structured replies after the encryption is enabled. If this cannot be done, apply network filtering (e.g., firewall, TCP wrappers, etc.) or use a Unix domain socket instead of TCP to ensure that untrusted clients cannot connect to nbdkit as a MitM attacker.",
    "lang" : "en:us"
  },
  "csaw" : false
}