Search

Find a vulnerability

Search criteria ⓘ Use this form to refine search results.
Full-text search supports keyword queries with ranking and filtering.
You can combine vendor, product, and sources to narrow results.
Enable “Apply ordering” to sort by date instead of relevance.

    10 vulnerabilities found for wolfSSH by wolfSSL Inc.

    CVE-2026-84897 (GCVE-0-2026-84897)

    Vulnerability from nvd – Published: 2026-10-07 02:42 – Updated: 2026-10-07 18:37
    VLAI
    Title
    wolfSSH server accepts server-to-client DH group exchange messages from an unauthenticated client, causing pre-authentication primality-test CPU exhaustion and key exchange role confusion
    Summary
    src/internal.c in wolfSSL wolfSSH through 1.5.0 admits the server-to-client Diffie-Hellman group exchange messages SSH_MSG_KEX_DH_GEX_GROUP (31) and SSH_MSG_KEX_DH_GEX_REPLY (33) when a server receives them from an unauthenticated client. IsMessageAllowedServer() applies no direction check to the key exchange message range: when the peer is keying and no particular message is expected, which is the state a server is in for the whole window after it processes the client's KEXINIT because nothing sets handshake->expectMsgId there, the function falls out of its expectation branch without a verdict and reaches a numeric bound that admits every message id from 30 through 34. A client that negotiates diffie-hellman-group-exchange-sha256 and then sends message 31 makes the server run the client-side handler DoKexDhGexGroup(), which validates the attacker-supplied group with two 8-round Miller-Rabin primality tests, one on p and one on (p-1)/2, on a value of up to 8192 bits. The handler then returns success: the server stores the attacker's prime and generator, generates a Diffie-Hellman key pair in the attacker's group, and sends the client-role message SSH_MSG_KEX_DH_GEX_INIT (32) back to the attacker. Published RFC 3526 safe primes are the worst-case input and cost the attacker nothing to obtain. The primality validation was added in 1.5.0; versions from 1.2.0 through 1.4.22 admit the same message and enter the same client-role path without the primality cost. Message 33 is admitted as well, but on a server it is rejected before any cryptography because no public key check callback is registered, so it carries no comparable cost. Builds that define WOLFSSH_NO_DH_GEX_SHA256, which is implied by WOLFSSH_NO_DH or NO_SHA256, are unaffected.
    SSVC
    Exploitation: none Automatable: yes Technical Impact: partial
    CISA Coordinator · CISA-ADP (v2.0.3)
    Decision recorded 2026-10-07 18:36 UTC
    CWE
    • CWE-372 - Incomplete Internal State Distinction
    • CWE-405 - Asymmetric Resource Consumption (Amplification)
    • CWE-400 - Uncontrolled Resource Consumption
    Assigner
    wolfSSL CNA under the icscert root
    CNA scorecard B 80/100 over 52 records in the last 180 days details
    Impacted products
    Vendor Product Version
    wolfSSL Inc. wolfSSH Affected: 1.2.0 , ≤ 1.5.0 (semver)
    Create a notification for this product.
    Show details on NVD website

    {
      "containers": {
        "adp": [
          {
            "metrics": [
              {
                "other": {
                  "content": {
                    "id": "CVE-2026-84897",
                    "options": [
                      {
                        "Exploitation": "none"
                      },
                      {
                        "Automatable": "yes"
                      },
                      {
                        "Technical Impact": "partial"
                      }
                    ],
                    "role": "CISA Coordinator",
                    "timestamp": "2026-10-07T18:36:45.750446Z",
                    "version": "2.0.3"
                  },
                  "type": "ssvc"
                }
              }
            ],
            "providerMetadata": {
              "dateUpdated": "2026-10-07T18:37:00.316Z",
              "orgId": "134c704f-9b21-4f2e-91b3-4a467353bcc0",
              "shortName": "CISA-ADP"
            },
            "title": "CISA ADP Vulnrichment"
          }
        ],
        "cna": {
          "affected": [
            {
              "defaultStatus": "unaffected",
              "modules": [
                "key exchange"
              ],
              "product": "wolfSSH",
              "programFiles": [
                "src/internal.c"
              ],
              "programRoutines": [
                {
                  "name": "IsMessageAllowedServer"
                },
                {
                  "name": "DoKexDhGexGroup"
                },
                {
                  "name": "ValidateKexDhGexGroup"
                }
              ],
              "repo": "https://github.com/wolfSSL/wolfssh",
              "vendor": "wolfSSL Inc.",
              "versions": [
                {
                  "changes": [
                    {
                      "at": "1.6.0",
                      "status": "unaffected"
                    }
                  ],
                  "lessThanOrEqual": "1.5.0",
                  "status": "affected",
                  "version": "1.2.0",
                  "versionType": "semver"
                }
              ]
            }
          ],
          "credits": [
            {
              "lang": "en",
              "type": "finder",
              "value": "Abdullah Al Ishtiaq, Kai Tu, Matthew Carter, Xiaotian Zhou, Ananna Rahman, Yilu Dong, Tianwei Yu, Ali Ranjbar, Syed Rafiul Hussain"
            }
          ],
          "descriptions": [
            {
              "lang": "en",
              "supportingMedia": [
                {
                  "base64": false,
                  "type": "text/html",
                  "value": "\u003ccode\u003esrc/internal.c\u003c/code\u003e in wolfSSL wolfSSH through 1.5.0 admits the server-to-client Diffie-Hellman group exchange messages \u003ccode\u003eSSH_MSG_KEX_DH_GEX_GROUP\u003c/code\u003e (31) and \u003ccode\u003eSSH_MSG_KEX_DH_GEX_REPLY\u003c/code\u003e (33) when a server receives them from an unauthenticated client. \u003ccode\u003eIsMessageAllowedServer()\u003c/code\u003e applies no direction check to the key exchange message range: when the peer is keying and no particular message is expected, which is the state a server is in for the whole window after it processes the client\u0027s KEXINIT because nothing sets \u003ccode\u003ehandshake-\u0026gt;expectMsgId\u003c/code\u003e there, the function falls out of its expectation branch without a verdict and reaches a numeric bound that admits every message id from 30 through 34. A client that negotiates \u003ccode\u003ediffie-hellman-group-exchange-sha256\u003c/code\u003e and then sends message 31 makes the server run the client-side handler \u003ccode\u003eDoKexDhGexGroup()\u003c/code\u003e, which validates the attacker-supplied group with two 8-round Miller-Rabin primality tests, one on \u003ccode\u003ep\u003c/code\u003e and one on \u003ccode\u003e(p-1)/2\u003c/code\u003e, on a value of up to 8192 bits. The handler then returns success: the server stores the attacker\u0027s prime and generator, generates a Diffie-Hellman key pair in the attacker\u0027s group, and sends the client-role message \u003ccode\u003eSSH_MSG_KEX_DH_GEX_INIT\u003c/code\u003e (32) back to the attacker. Published RFC 3526 safe primes are the worst-case input and cost the attacker nothing to obtain. The primality validation was added in 1.5.0; versions from 1.2.0 through 1.4.22 admit the same message and enter the same client-role path without the primality cost. Message 33 is admitted as well, but on a server it is rejected before any cryptography because no public key check callback is registered, so it carries no comparable cost. Builds that define \u003ccode\u003eWOLFSSH_NO_DH_GEX_SHA256\u003c/code\u003e, which is implied by \u003ccode\u003eWOLFSSH_NO_DH\u003c/code\u003e or \u003ccode\u003eNO_SHA256\u003c/code\u003e, are unaffected.\u003cbr\u003e"
                }
              ],
              "value": "src/internal.c in wolfSSL wolfSSH through 1.5.0 admits the server-to-client Diffie-Hellman group exchange messages SSH_MSG_KEX_DH_GEX_GROUP (31) and SSH_MSG_KEX_DH_GEX_REPLY (33) when a server receives them from an unauthenticated client. IsMessageAllowedServer() applies no direction check to the key exchange message range: when the peer is keying and no particular message is expected, which is the state a server is in for the whole window after it processes the client\u0027s KEXINIT because nothing sets handshake-\u003eexpectMsgId there, the function falls out of its expectation branch without a verdict and reaches a numeric bound that admits every message id from 30 through 34. A client that negotiates diffie-hellman-group-exchange-sha256 and then sends message 31 makes the server run the client-side handler DoKexDhGexGroup(), which validates the attacker-supplied group with two 8-round Miller-Rabin primality tests, one on p and one on (p-1)/2, on a value of up to 8192 bits. The handler then returns success: the server stores the attacker\u0027s prime and generator, generates a Diffie-Hellman key pair in the attacker\u0027s group, and sends the client-role message SSH_MSG_KEX_DH_GEX_INIT (32) back to the attacker. Published RFC 3526 safe primes are the worst-case input and cost the attacker nothing to obtain. The primality validation was added in 1.5.0; versions from 1.2.0 through 1.4.22 admit the same message and enter the same client-role path without the primality cost. Message 33 is admitted as well, but on a server it is rejected before any cryptography because no public key check callback is registered, so it carries no comparable cost. Builds that define WOLFSSH_NO_DH_GEX_SHA256, which is implied by WOLFSSH_NO_DH or NO_SHA256, are unaffected."
            }
          ],
          "impacts": [
            {
              "descriptions": [
                {
                  "lang": "en",
                  "value": "Pre-authentication CPU exhaustion with a high work-per-byte ratio, plus key exchange role confusion. One unauthenticated packet of roughly 1 KB costs a wolfSSH server about 0.48 seconds of single-core CPU when it carries the 4096-bit RFC 3526 safe prime, and about 5.8 seconds when it carries the 8192-bit one, measured on a 64-bit desktop core; a single-threaded or embedded server is unavailable for that whole interval, and the cost repeats on every connection. The server then stores the attacker-chosen group, generates a Diffie-Hellman key pair in it, and sends the client-role message SSH_MSG_KEX_DH_GEX_INIT back to the attacker, so the key exchange continues in the wrong role until it fails. Reaching the 8192-bit case requires a wolfSSL math configuration that can represent an 8192-bit integer; a default build tops out near 4096 bits and caps the burn at roughly half a second."
                }
              ]
            },
            {
              "capecId": "CAPEC-227",
              "descriptions": [
                {
                  "lang": "en",
                  "value": "CAPEC-227 Sustained Client Engagement"
                }
              ]
            }
          ],
          "metrics": [
            {
              "cvssV4_0": {
                "Automatable": "YES",
                "Recovery": "NOT_DEFINED",
                "Safety": "NOT_DEFINED",
                "attackComplexity": "LOW",
                "attackRequirements": "NONE",
                "attackVector": "NETWORK",
                "baseScore": 6.9,
                "baseSeverity": "MEDIUM",
                "exploitMaturity": "NOT_DEFINED",
                "privilegesRequired": "NONE",
                "providerUrgency": "NOT_DEFINED",
                "subAvailabilityImpact": "NONE",
                "subConfidentialityImpact": "NONE",
                "subIntegrityImpact": "NONE",
                "userInteraction": "NONE",
                "valueDensity": "NOT_DEFINED",
                "vectorString": "CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:N/VI:N/VA:L/SC:N/SI:N/SA:N/AU:Y",
                "version": "4.0",
                "vulnAvailabilityImpact": "LOW",
                "vulnConfidentialityImpact": "NONE",
                "vulnIntegrityImpact": "NONE",
                "vulnerabilityResponseEffort": "NOT_DEFINED"
              },
              "format": "CVSS",
              "scenarios": [
                {
                  "lang": "en",
                  "value": "GENERAL"
                }
              ]
            }
          ],
          "problemTypes": [
            {
              "descriptions": [
                {
                  "cweId": "CWE-372",
                  "description": "CWE-372 Incomplete Internal State Distinction",
                  "lang": "en",
                  "type": "CWE"
                }
              ]
            },
            {
              "descriptions": [
                {
                  "cweId": "CWE-405",
                  "description": "CWE-405 Asymmetric Resource Consumption (Amplification)",
                  "lang": "en",
                  "type": "CWE"
                }
              ]
            },
            {
              "descriptions": [
                {
                  "cweId": "CWE-400",
                  "description": "CWE-400 Uncontrolled Resource Consumption",
                  "lang": "en",
                  "type": "CWE"
                }
              ]
            }
          ],
          "providerMetadata": {
            "dateUpdated": "2026-10-07T02:42:28.388Z",
            "orgId": "50d2cd11-d01a-48ed-9441-5bfce9d63b27",
            "shortName": "wolfSSL"
          },
          "references": [
            {
              "name": "Fix PR #1221",
              "tags": [
                "patch"
              ],
              "url": "https://github.com/wolfSSL/wolfssh/pull/1221"
            },
            {
              "name": "Fix commit a472f1ee (reject the KEX replies a server never receives)",
              "tags": [
                "patch"
              ],
              "url": "https://github.com/wolfSSL/wolfssh/commit/a472f1ee2b653f623d85ef2297321733f1dbfd22"
            },
            {
              "name": "RFC 4419 sections 3 and 5 (SSH_MSG_KEX_DH_GEX_GROUP and SSH_MSG_KEX_DH_GEX_REPLY are sent by the server)",
              "tags": [
                "technical-description"
              ],
              "url": "https://www.rfc-editor.org/rfc/rfc4419.html"
            },
            {
              "name": "RFC 3526 (published MODP safe primes usable as the worst-case input)",
              "tags": [
                "technical-description"
              ],
              "url": "https://www.rfc-editor.org/rfc/rfc3526.html"
            }
          ],
          "source": {
            "discovery": "EXTERNAL"
          },
          "title": "wolfSSH server accepts server-to-client DH group exchange messages from an unauthenticated client, causing pre-authentication primality-test CPU exhaustion and key exchange role confusion",
          "workarounds": [
            {
              "lang": "en",
              "supportingMedia": [
                {
                  "base64": false,
                  "type": "text/html",
                  "value": "Build wolfSSH with \u003ccode\u003eWOLFSSH_NO_DH_GEX_SHA256\u003c/code\u003e defined so that \u003ccode\u003ediffie-hellman-group-exchange-sha256\u003c/code\u003e is neither offered nor accepted, which removes the message 31 dispatch path entirely. Where group exchange must stay available, lowering \u003ccode\u003eWOLFSSH_DEFAULT_GEXDH_MAX\u003c/code\u003e reduces the size of the value a peer can submit for primality testing and so the cost of a single packet, but it does not stop a server from accepting the message.\u003cbr\u003e"
                }
              ],
              "value": "Build wolfSSH with WOLFSSH_NO_DH_GEX_SHA256 defined so that diffie-hellman-group-exchange-sha256 is neither offered nor accepted, which removes the message 31 dispatch path entirely. Where group exchange must stay available, lowering WOLFSSH_DEFAULT_GEXDH_MAX reduces the size of the value a peer can submit for primality testing and so the cost of a single packet, but it does not stop a server from accepting the message."
            }
          ],
          "x_generator": {
            "engine": "Vulnogram 1.0.5"
          }
        }
      },
      "cveMetadata": {
        "assignerOrgId": "50d2cd11-d01a-48ed-9441-5bfce9d63b27",
        "assignerShortName": "wolfSSL",
        "cveId": "CVE-2026-84897",
        "datePublished": "2026-10-07T02:42:28.388Z",
        "dateReserved": "2026-09-02T15:07:44.223Z",
        "dateUpdated": "2026-10-07T18:37:00.316Z",
        "state": "PUBLISHED"
      },
      "dataType": "CVE_RECORD",
      "dataVersion": "5.2"
    }

    CVE-2026-83742 (GCVE-0-2026-83742)

    Vulnerability from nvd – Published: 2026-10-07 02:41 – Updated: 2026-10-07 11:30
    VLAI
    Title
    wstrncat() unsigned integer underflow leads to an off-by-one null write in wolfSSH on non-Windows platforms
    Summary
    Unsigned integer underflow in wstrncat() in src/port.c in wolfSSL wolfSSH from v1.4.11 through v1.5.0 on non-Windows platforms allows an authenticated remote attacker to write one out-of-bounds null byte past the end of a stack buffer by sending a crafted SFTP path. wolfSSH_RealPath() in src/ssh.c appends each path component with a remaining-size bound (outSz - curSz) rather than the full destination size, so once the accumulated path reaches half the output buffer the size_t computation n - strlen(s1) - 1 wraps to near SIZE_MAX. The strncat() call is then effectively unbounded and copies the whole component; when that component exactly fills the remainder of the buffer, its terminating null is written one byte past the end. The caller's own length check keeps the copied data inside the buffer, so the overflow is limited to that single null byte, which may corrupt an adjacent stack value and crash the process. Applications that call the public wolfSSH_RealPath() with an output buffer smaller than the input path are additionally exposed to an unbounded copy, because the word32 expression outSz - segSz in that length check also wraps.
    SSVC
    Exploitation: none Automatable: no Technical Impact: partial
    CISA Coordinator · CISA-ADP (v2.0.3)
    Decision recorded 2026-10-07 11:30 UTC
    CWE
    • CWE-191 - Integer Underflow (Wrap or Wraparound)
    • CWE-121 - Stack-based Buffer Overflow
    • CWE-193 - Off-by-one Error
    Assigner
    wolfSSL CNA under the icscert root
    CNA scorecard B 80/100 over 52 records in the last 180 days details
    Impacted products
    Vendor Product Version
    wolfSSL Inc. wolfSSH Affected: 1.4.11 , ≤ 1.5.0 (semver)
    Create a notification for this product.
    Show details on NVD website

    {
      "containers": {
        "adp": [
          {
            "metrics": [
              {
                "other": {
                  "content": {
                    "id": "CVE-2026-83742",
                    "options": [
                      {
                        "Exploitation": "none"
                      },
                      {
                        "Automatable": "no"
                      },
                      {
                        "Technical Impact": "partial"
                      }
                    ],
                    "role": "CISA Coordinator",
                    "timestamp": "2026-10-07T11:30:20.098721Z",
                    "version": "2.0.3"
                  },
                  "type": "ssvc"
                }
              }
            ],
            "providerMetadata": {
              "dateUpdated": "2026-10-07T11:30:28.937Z",
              "orgId": "134c704f-9b21-4f2e-91b3-4a467353bcc0",
              "shortName": "CISA-ADP"
            },
            "title": "CISA ADP Vulnrichment"
          }
        ],
        "cna": {
          "affected": [
            {
              "defaultStatus": "unaffected",
              "product": "wolfSSH",
              "programFiles": [
                "src/port.c",
                "src/ssh.c"
              ],
              "repo": "https://github.com/wolfSSL/wolfssh",
              "vendor": "wolfSSL Inc.",
              "versions": [
                {
                  "changes": [
                    {
                      "at": "1.6.0",
                      "status": "unaffected"
                    }
                  ],
                  "lessThanOrEqual": "1.5.0",
                  "status": "affected",
                  "version": "1.4.11",
                  "versionType": "semver"
                }
              ]
            }
          ],
          "credits": [
            {
              "lang": "en",
              "type": "reporter",
              "value": "Asif Nadaf \u003cpostasif@protonmail.com\u003e, Independent Security Researcher"
            }
          ],
          "descriptions": [
            {
              "lang": "en",
              "supportingMedia": [
                {
                  "base64": false,
                  "type": "text/html",
                  "value": "Unsigned integer underflow in \u003ccode\u003ewstrncat()\u003c/code\u003e in \u003ccode\u003esrc/port.c\u003c/code\u003e in wolfSSL wolfSSH from v1.4.11 through v1.5.0 on non-Windows platforms allows an authenticated remote attacker to write one out-of-bounds null byte past the end of a stack buffer by sending a crafted SFTP path. \u003ccode\u003ewolfSSH_RealPath()\u003c/code\u003e in \u003ccode\u003esrc/ssh.c\u003c/code\u003e appends each path component with a remaining-size bound (\u003ccode\u003eoutSz - curSz\u003c/code\u003e) rather than the full destination size, so once the accumulated path reaches half the output buffer the \u003ccode\u003esize_t\u003c/code\u003e computation \u003ccode\u003en - strlen(s1) - 1\u003c/code\u003e wraps to near \u003ccode\u003eSIZE_MAX\u003c/code\u003e. The \u003ccode\u003estrncat()\u003c/code\u003e call is then effectively unbounded and copies the whole component; when that component exactly fills the remainder of the buffer, its terminating null is written one byte past the end. The caller\u0027s own length check keeps the copied data inside the buffer, so the overflow is limited to that single null byte, which may corrupt an adjacent stack value and crash the process. Applications that call the public \u003ccode\u003ewolfSSH_RealPath()\u003c/code\u003e with an output buffer smaller than the input path are additionally exposed to an unbounded copy, because the \u003ccode\u003eword32\u003c/code\u003e expression \u003ccode\u003eoutSz - segSz\u003c/code\u003e in that length check also wraps."
                }
              ],
              "value": "Unsigned integer underflow in wstrncat() in src/port.c in wolfSSL wolfSSH from v1.4.11 through v1.5.0 on non-Windows platforms allows an authenticated remote attacker to write one out-of-bounds null byte past the end of a stack buffer by sending a crafted SFTP path. wolfSSH_RealPath() in src/ssh.c appends each path component with a remaining-size bound (outSz - curSz) rather than the full destination size, so once the accumulated path reaches half the output buffer the size_t computation n - strlen(s1) - 1 wraps to near SIZE_MAX. The strncat() call is then effectively unbounded and copies the whole component; when that component exactly fills the remainder of the buffer, its terminating null is written one byte past the end. The caller\u0027s own length check keeps the copied data inside the buffer, so the overflow is limited to that single null byte, which may corrupt an adjacent stack value and crash the process. Applications that call the public wolfSSH_RealPath() with an output buffer smaller than the input path are additionally exposed to an unbounded copy, because the word32 expression outSz - segSz in that length check also wraps."
            }
          ],
          "impacts": [
            {
              "descriptions": [
                {
                  "lang": "en",
                  "value": "Write of a single out-of-bounds null byte immediately past the end of a stack buffer in the SFTP path handlers, which may corrupt an adjacent stack value and cause the server process to misbehave or crash. Requires an authenticated SFTP session. The copied path data itself stays within the buffer, and no out-of-bounds read or information disclosure results, because the out-of-bounds null terminates the string. Applications calling the public wolfSSH_RealPath() with an output buffer smaller than the input path can instead suffer an unbounded stack buffer overflow."
                }
              ]
            },
            {
              "capecId": "CAPEC-100",
              "descriptions": [
                {
                  "lang": "en",
                  "value": "CAPEC-100 Overflow Buffers"
                }
              ]
            }
          ],
          "metrics": [
            {
              "cvssV4_0": {
                "Automatable": "NO",
                "Recovery": "NOT_DEFINED",
                "Safety": "NOT_DEFINED",
                "attackComplexity": "LOW",
                "attackRequirements": "NONE",
                "attackVector": "NETWORK",
                "baseScore": 5.3,
                "baseSeverity": "MEDIUM",
                "exploitMaturity": "NOT_DEFINED",
                "privilegesRequired": "LOW",
                "providerUrgency": "NOT_DEFINED",
                "subAvailabilityImpact": "NONE",
                "subConfidentialityImpact": "NONE",
                "subIntegrityImpact": "NONE",
                "userInteraction": "NONE",
                "valueDensity": "NOT_DEFINED",
                "vectorString": "CVSS:4.0/AV:N/AC:L/AT:N/PR:L/UI:N/VC:N/VI:L/VA:L/SC:N/SI:N/SA:N/AU:N",
                "version": "4.0",
                "vulnAvailabilityImpact": "LOW",
                "vulnConfidentialityImpact": "NONE",
                "vulnIntegrityImpact": "LOW",
                "vulnerabilityResponseEffort": "NOT_DEFINED"
              },
              "format": "CVSS",
              "scenarios": [
                {
                  "lang": "en",
                  "value": "GENERAL"
                }
              ]
            }
          ],
          "problemTypes": [
            {
              "descriptions": [
                {
                  "cweId": "CWE-191",
                  "description": "CWE-191 Integer Underflow (Wrap or Wraparound)",
                  "lang": "en",
                  "type": "CWE"
                }
              ]
            },
            {
              "descriptions": [
                {
                  "cweId": "CWE-121",
                  "description": "CWE-121 Stack-based Buffer Overflow",
                  "lang": "en",
                  "type": "CWE"
                }
              ]
            },
            {
              "descriptions": [
                {
                  "cweId": "CWE-193",
                  "description": "CWE-193 Off-by-one Error",
                  "lang": "en",
                  "type": "CWE"
                }
              ]
            }
          ],
          "providerMetadata": {
            "dateUpdated": "2026-10-07T02:41:48.911Z",
            "orgId": "50d2cd11-d01a-48ed-9441-5bfce9d63b27",
            "shortName": "wolfSSL"
          },
          "references": [
            {
              "name": "Fix PR #1084",
              "tags": [
                "patch"
              ],
              "url": "https://github.com/wolfSSL/wolfssh/pull/1084"
            },
            {
              "name": "Fix commit 822e4464 (guard the free space calculation in wstrncat)",
              "tags": [
                "patch"
              ],
              "url": "https://github.com/wolfSSL/wolfssh/commit/822e4464560b467580ea37a2fc03b0988d88b71f"
            },
            {
              "name": "Fix commit 513e52b1 (bounded scan replacing strlen in wstrncat)",
              "tags": [
                "patch"
              ],
              "url": "https://github.com/wolfSSL/wolfssh/commit/513e52b18927a4e3f7cf17ecaf107958e56139de"
            },
            {
              "name": "Hardening commit fbc7cd88 (wolfSSH_RealPath length check and append bounds)",
              "tags": [
                "patch"
              ],
              "url": "https://github.com/wolfSSL/wolfssh/commit/fbc7cd88a23b59a45a584020a4c7242d9bd70f35"
            }
          ],
          "source": {
            "discovery": "EXTERNAL"
          },
          "title": "wstrncat() unsigned integer underflow leads to an off-by-one null write in wolfSSH on non-Windows platforms",
          "x_generator": {
            "engine": "Vulnogram 1.0.5"
          }
        }
      },
      "cveMetadata": {
        "assignerOrgId": "50d2cd11-d01a-48ed-9441-5bfce9d63b27",
        "assignerShortName": "wolfSSL",
        "cveId": "CVE-2026-83742",
        "datePublished": "2026-10-07T02:41:48.911Z",
        "dateReserved": "2026-08-31T22:49:43.798Z",
        "dateUpdated": "2026-10-07T11:30:28.937Z",
        "state": "PUBLISHED"
      },
      "dataType": "CVE_RECORD",
      "dataVersion": "5.2"
    }

    CVE-2026-81535 (GCVE-0-2026-81535)

    Vulnerability from nvd – Published: 2026-10-07 02:39 – Updated: 2026-10-07 18:37
    VLAI
    Title
    wolfSSH SSH client accepts unsolicited forwarded-tcpip channel opens without an authorization check
    Summary
    In wolfSSH through 1.5.0 built with --enable-fwd, DoChannelOpen() in src/internal.c gates only direct-tcpip channel opens with the forwarding policy callback. forwarded-tcpip opens are admitted without an authorization check and are not capped in number, allowing a malicious SSH peer to make an endpoint allocate unbounded per-channel buffers for forwarding channels the application never authorized. A client also does not check a forwarded-tcpip open against the forwards it registered with a tcpip-forward request, as RFC 4254 section 7.2 requires, so a malicious server can open forwarding channels for addresses and ports the client never asked it to forward.
    SSVC
    Exploitation: none Automatable: no Technical Impact: partial
    CISA Coordinator · CISA-ADP (v2.0.3)
    Decision recorded 2026-10-07 18:37 UTC
    CWE
    Assigner
    wolfSSL CNA under the icscert root
    CNA scorecard B 80/100 over 52 records in the last 180 days details
    Impacted products
    Vendor Product Version
    wolfSSL Inc. wolfSSH Affected: 1.4.8 , ≤ 1.5.0 (semver)
    Create a notification for this product.
    Show details on NVD website

    {
      "containers": {
        "adp": [
          {
            "metrics": [
              {
                "other": {
                  "content": {
                    "id": "CVE-2026-81535",
                    "options": [
                      {
                        "Exploitation": "none"
                      },
                      {
                        "Automatable": "no"
                      },
                      {
                        "Technical Impact": "partial"
                      }
                    ],
                    "role": "CISA Coordinator",
                    "timestamp": "2026-10-07T18:37:10.078645Z",
                    "version": "2.0.3"
                  },
                  "type": "ssvc"
                }
              }
            ],
            "providerMetadata": {
              "dateUpdated": "2026-10-07T18:37:36.186Z",
              "orgId": "134c704f-9b21-4f2e-91b3-4a467353bcc0",
              "shortName": "CISA-ADP"
            },
            "title": "CISA ADP Vulnrichment"
          }
        ],
        "cna": {
          "affected": [
            {
              "defaultStatus": "unaffected",
              "modules": [
                "forwarding"
              ],
              "product": "wolfSSH",
              "programFiles": [
                "src/internal.c"
              ],
              "repo": "https://github.com/wolfSSL/wolfssh",
              "vendor": "wolfSSL Inc.",
              "versions": [
                {
                  "changes": [
                    {
                      "at": "1.6.0",
                      "status": "unaffected"
                    }
                  ],
                  "lessThanOrEqual": "1.5.0",
                  "status": "affected",
                  "version": "1.4.8",
                  "versionType": "semver"
                }
              ]
            }
          ],
          "credits": [
            {
              "lang": "en",
              "type": "finder",
              "value": "zhangph (GitHub afldl)"
            }
          ],
          "descriptions": [
            {
              "lang": "en",
              "supportingMedia": [
                {
                  "base64": false,
                  "type": "text/html",
                  "value": "In wolfSSH through 1.5.0 built with\u0026nbsp;\u003ccode\u003e--enable-fwd\u003c/code\u003e,\u0026nbsp;\u003ccode\u003eDoChannelOpen()\u003c/code\u003e\u0026nbsp;in\u0026nbsp;\u003ccode\u003esrc/internal.c\u003c/code\u003e\u0026nbsp;gates only\u0026nbsp;\u003ccode\u003edirect-tcpip\u003c/code\u003e\u0026nbsp;channel opens with the forwarding policy callback.\u0026nbsp;\u003ccode\u003eforwarded-tcpip\u003c/code\u003e\u0026nbsp;opens are admitted without an authorization check and are not capped in number, allowing a malicious SSH peer to make an endpoint allocate unbounded per-channel buffers for forwarding channels the application never authorized. A client also does not check a\u0026nbsp;\u003ccode\u003eforwarded-tcpip\u003c/code\u003e\u0026nbsp;open against the forwards it registered with a\u0026nbsp;\u003ccode\u003etcpip-forward\u003c/code\u003e\u0026nbsp;request, as RFC 4254 section 7.2 requires, so a malicious server can open forwarding channels for addresses and ports the client never asked it to forward.\u003cbr\u003e"
                }
              ],
              "value": "In wolfSSH through 1.5.0 built with\u00a0--enable-fwd,\u00a0DoChannelOpen()\u00a0in\u00a0src/internal.c\u00a0gates only\u00a0direct-tcpip\u00a0channel opens with the forwarding policy callback.\u00a0forwarded-tcpip\u00a0opens are admitted without an authorization check and are not capped in number, allowing a malicious SSH peer to make an endpoint allocate unbounded per-channel buffers for forwarding channels the application never authorized. A client also does not check a\u00a0forwarded-tcpip\u00a0open against the forwards it registered with a\u00a0tcpip-forward\u00a0request, as RFC 4254 section 7.2 requires, so a malicious server can open forwarding channels for addresses and ports the client never asked it to forward."
            }
          ],
          "impacts": [
            {
              "capecId": "CAPEC-130",
              "descriptions": [
                {
                  "lang": "en",
                  "value": "CAPEC-130 Excessive Allocation"
                }
              ]
            }
          ],
          "metrics": [
            {
              "cvssV4_0": {
                "Automatable": "NOT_DEFINED",
                "Recovery": "NOT_DEFINED",
                "Safety": "NOT_DEFINED",
                "attackComplexity": "LOW",
                "attackRequirements": "PRESENT",
                "attackVector": "NETWORK",
                "baseScore": 6.3,
                "baseSeverity": "MEDIUM",
                "exploitMaturity": "NOT_DEFINED",
                "privilegesRequired": "NONE",
                "providerUrgency": "NOT_DEFINED",
                "subAvailabilityImpact": "NONE",
                "subConfidentialityImpact": "NONE",
                "subIntegrityImpact": "NONE",
                "userInteraction": "NONE",
                "valueDensity": "NOT_DEFINED",
                "vectorString": "CVSS:4.0/AV:N/AC:L/AT:P/PR:N/UI:N/VC:N/VI:N/VA:L/SC:N/SI:N/SA:N",
                "version": "4.0",
                "vulnAvailabilityImpact": "LOW",
                "vulnConfidentialityImpact": "NONE",
                "vulnIntegrityImpact": "NONE",
                "vulnerabilityResponseEffort": "NOT_DEFINED"
              },
              "format": "CVSS",
              "scenarios": [
                {
                  "lang": "en",
                  "value": "GENERAL"
                }
              ]
            }
          ],
          "problemTypes": [
            {
              "descriptions": [
                {
                  "cweId": "CWE-862",
                  "description": "CWE-862 Missing Authorization",
                  "lang": "en",
                  "type": "CWE"
                }
              ]
            },
            {
              "descriptions": [
                {
                  "cweId": "CWE-863",
                  "description": "CWE-863 Incorrect Authorization",
                  "lang": "en",
                  "type": "CWE"
                }
              ]
            }
          ],
          "providerMetadata": {
            "dateUpdated": "2026-10-07T02:39:27.830Z",
            "orgId": "50d2cd11-d01a-48ed-9441-5bfce9d63b27",
            "shortName": "wolfSSL"
          },
          "references": [
            {
              "tags": [
                "patch"
              ],
              "url": "https://github.com/wolfSSL/wolfssh/commit/616eb681e70759c30c3ba158f2b18d7bd954def8"
            },
            {
              "name": "Fix commit e396a0a4 (match forwarded-tcpip opens to registered forwards, PR #1148)",
              "tags": [
                "patch"
              ],
              "url": "https://github.com/wolfSSL/wolfssh/commit/e396a0a4b6b367f10270287446a4be0071742b5c"
            },
            {
              "name": "Fix commit 79a7f299 (match forwarded-tcpip on every client session, PR #1220)",
              "tags": [
                "patch"
              ],
              "url": "https://github.com/wolfSSL/wolfssh/commit/79a7f299337a28aa561409688a268d0efe6e295c"
            }
          ],
          "source": {
            "discovery": "EXTERNAL"
          },
          "title": "wolfSSH SSH client accepts unsolicited forwarded-tcpip channel opens without an authorization check",
          "x_generator": {
            "engine": "Vulnogram 1.0.5"
          }
        }
      },
      "cveMetadata": {
        "assignerOrgId": "50d2cd11-d01a-48ed-9441-5bfce9d63b27",
        "assignerShortName": "wolfSSL",
        "cveId": "CVE-2026-81535",
        "datePublished": "2026-10-07T02:39:27.830Z",
        "dateReserved": "2026-08-26T23:09:37.634Z",
        "dateUpdated": "2026-10-07T18:37:36.186Z",
        "state": "PUBLISHED"
      },
      "dataType": "CVE_RECORD",
      "dataVersion": "5.2"
    }

    CVE-2026-16516 (GCVE-0-2026-16516)

    Vulnerability from nvd – Published: 2026-10-07 02:38 – Updated: 2026-10-07 11:17
    VLAI
    Title
    wolfSSH ECDSA host key curve not validated against negotiated algorithm
    Summary
    wolfSSH does not validate that the ECDSA curve identifier in a KEXDH_REPLY host key blob matches the algorithm negotiated during key exchange. In ParseECCPubKey() (src/internal.c), the blob's algorithm string is used to derive the curve via NameToId/wcPrimeForId without checking against the negotiated ssh->handshake->pubKeyId, and the RFC 5656 curve identifier string is discarded via GetSkip() rather than compared. An active network man-in-the-middle attacker can substitute a host key blob containing a different ECDSA curve, causing the client to import the key on the wrong curve. Because the attacker controls the private key for the substituted curve, signature verification passes. Exploitation requires an active MitM position and a lax public key check callback (e.g., TOFU, algorithm-name-only check, or fingerprint match against the parsed key).
    SSVC
    Exploitation: none Automatable: no Technical Impact: partial
    CISA Coordinator · CISA-ADP (v2.0.3)
    Decision recorded 2026-10-07 11:15 UTC
    CWE
    • CWE-345 - Insufficient Verification of Data Authenticity
    Assigner
    wolfSSL CNA under the icscert root
    CNA scorecard B 80/100 over 52 records in the last 180 days details
    Impacted products
    Vendor Product Version
    wolfSSL Inc. wolfSSH Affected: 0 , ≤ 1.5.0 (semver)
    Create a notification for this product.
    Show details on NVD website

    {
      "containers": {
        "adp": [
          {
            "metrics": [
              {
                "other": {
                  "content": {
                    "id": "CVE-2026-16516",
                    "options": [
                      {
                        "Exploitation": "none"
                      },
                      {
                        "Automatable": "no"
                      },
                      {
                        "Technical Impact": "partial"
                      }
                    ],
                    "role": "CISA Coordinator",
                    "timestamp": "2026-10-07T11:15:50.612166Z",
                    "version": "2.0.3"
                  },
                  "type": "ssvc"
                }
              }
            ],
            "providerMetadata": {
              "dateUpdated": "2026-10-07T11:17:14.029Z",
              "orgId": "134c704f-9b21-4f2e-91b3-4a467353bcc0",
              "shortName": "CISA-ADP"
            },
            "title": "CISA ADP Vulnrichment"
          }
        ],
        "cna": {
          "affected": [
            {
              "defaultStatus": "unaffected",
              "product": "wolfSSH",
              "programFiles": [
                "src/internal.c"
              ],
              "repo": "https://github.com/wolfSSL/wolfssh",
              "vendor": "wolfSSL Inc.",
              "versions": [
                {
                  "changes": [
                    {
                      "at": "1.6.0",
                      "status": "unaffected"
                    }
                  ],
                  "lessThanOrEqual": "1.5.0",
                  "status": "affected",
                  "version": "0",
                  "versionType": "semver"
                }
              ]
            }
          ],
          "credits": [
            {
              "lang": "en",
              "type": "finder",
              "value": "zhangph (GitHub afldl)"
            }
          ],
          "descriptions": [
            {
              "lang": "en",
              "supportingMedia": [
                {
                  "base64": false,
                  "type": "text/html",
                  "value": "wolfSSH does not validate that the ECDSA curve identifier in a KEXDH_REPLY host key blob matches the algorithm negotiated during key exchange. In \u003ccode\u003eParseECCPubKey()\u003c/code\u003e (\u003ccode\u003esrc/internal.c\u003c/code\u003e), the blob\u0027s algorithm string is used to derive the curve via \u003ccode\u003eNameToId\u003c/code\u003e/\u003ccode\u003ewcPrimeForId\u003c/code\u003e without checking against the negotiated \u003ccode\u003essh-\u0026gt;handshake-\u0026gt;pubKeyId\u003c/code\u003e, and the RFC 5656 curve identifier string is discarded via \u003ccode\u003eGetSkip()\u003c/code\u003e rather than compared. An active network man-in-the-middle attacker can substitute a host key blob containing a different ECDSA curve, causing the client to import the key on the wrong curve. Because the attacker controls the private key for the substituted curve, signature verification passes. Exploitation requires an active MitM position and a lax public key check callback (e.g., TOFU, algorithm-name-only check, or fingerprint match against the parsed key)."
                }
              ],
              "value": "wolfSSH does not validate that the ECDSA curve identifier in a KEXDH_REPLY host key blob matches the algorithm negotiated during key exchange. In ParseECCPubKey() (src/internal.c), the blob\u0027s algorithm string is used to derive the curve via NameToId/wcPrimeForId without checking against the negotiated ssh-\u003ehandshake-\u003epubKeyId, and the RFC 5656 curve identifier string is discarded via GetSkip() rather than compared. An active network man-in-the-middle attacker can substitute a host key blob containing a different ECDSA curve, causing the client to import the key on the wrong curve. Because the attacker controls the private key for the substituted curve, signature verification passes. Exploitation requires an active MitM position and a lax public key check callback (e.g., TOFU, algorithm-name-only check, or fingerprint match against the parsed key)."
            }
          ],
          "impacts": [
            {
              "capecId": "CAPEC-475",
              "descriptions": [
                {
                  "lang": "en",
                  "value": "CAPEC-475 Signature Spoofing by Improper Validation"
                }
              ]
            }
          ],
          "metrics": [
            {
              "cvssV4_0": {
                "Automatable": "NOT_DEFINED",
                "Recovery": "NOT_DEFINED",
                "Safety": "NOT_DEFINED",
                "attackComplexity": "LOW",
                "attackRequirements": "PRESENT",
                "attackVector": "NETWORK",
                "baseScore": 9,
                "baseSeverity": "CRITICAL",
                "exploitMaturity": "NOT_DEFINED",
                "privilegesRequired": "NONE",
                "providerUrgency": "NOT_DEFINED",
                "subAvailabilityImpact": "NONE",
                "subConfidentialityImpact": "LOW",
                "subIntegrityImpact": "HIGH",
                "userInteraction": "NONE",
                "valueDensity": "NOT_DEFINED",
                "vectorString": "CVSS:4.0/AV:N/AC:L/AT:P/PR:N/UI:N/VC:L/VI:H/VA:N/SC:L/SI:H/SA:N",
                "version": "4.0",
                "vulnAvailabilityImpact": "NONE",
                "vulnConfidentialityImpact": "LOW",
                "vulnIntegrityImpact": "HIGH",
                "vulnerabilityResponseEffort": "NOT_DEFINED"
              },
              "format": "CVSS",
              "scenarios": [
                {
                  "lang": "en",
                  "value": "GENERAL"
                }
              ]
            }
          ],
          "problemTypes": [
            {
              "descriptions": [
                {
                  "cweId": "CWE-345",
                  "description": "CWE-345 Insufficient Verification of Data Authenticity",
                  "lang": "en",
                  "type": "CWE"
                }
              ]
            }
          ],
          "providerMetadata": {
            "dateUpdated": "2026-10-07T02:38:23.334Z",
            "orgId": "50d2cd11-d01a-48ed-9441-5bfce9d63b27",
            "shortName": "wolfSSL"
          },
          "references": [
            {
              "name": "ECDSA host key curve substitution - blob curve not validated against negotiated algorithm",
              "tags": [
                "issue-tracking"
              ],
              "url": "https://github.com/wolfSSL/wolfssh/issues/1012"
            },
            {
              "tags": [
                "patch"
              ],
              "url": "https://github.com/wolfSSL/wolfssh/commit/31d13697a608fa1bf9eec11aa6eff1503ade836f"
            }
          ],
          "source": {
            "discovery": "EXTERNAL"
          },
          "title": "wolfSSH ECDSA host key curve not validated against negotiated algorithm",
          "x_generator": {
            "engine": "Vulnogram 1.0.2"
          }
        }
      },
      "cveMetadata": {
        "assignerOrgId": "50d2cd11-d01a-48ed-9441-5bfce9d63b27",
        "assignerShortName": "wolfSSL",
        "cveId": "CVE-2026-16516",
        "datePublished": "2026-10-07T02:38:23.334Z",
        "dateReserved": "2026-07-21T22:09:07.190Z",
        "dateUpdated": "2026-10-07T11:17:14.029Z",
        "state": "PUBLISHED"
      },
      "dataType": "CVE_RECORD",
      "dataVersion": "5.2"
    }

    CVE-2024-2873 (GCVE-0-2024-2873)

    Vulnerability from nvd – Published: 2024-03-25 21:58 – Updated: 2024-08-01 19:50
    VLAI
    Title
    User authentication bypass in wolfSSH server
    Summary
    A vulnerability was found in wolfSSH's server-side state machine before versions 1.4.17. A malicious client could create channels without first performing user authentication, resulting in unauthorized access.
    SSVC
    Exploitation: none Automatable: yes Technical Impact: total
    CISA Coordinator · CISA-ADP (v2.0.3)
    Decision recorded 2024-08-01 19:41 UTC
    CWE
    • CWE-287 - Improper Authentication
    Assigner
    wolfSSL CNA under the icscert root
    CNA scorecard B 80/100 over 52 records in the last 180 days details
    Impacted products
    Vendor Product Version
    wolfSSL Inc. wolfSSH Affected: 0 , ≤ v1.4.16 (release bundle)
    Create a notification for this product.
    wolfssh wolfssh Affected: 0 , < 1.4.16 (custom)
        cpe:2.3:a:wolfssh:wolfssh:*:*:*:*:*:*:*:*
    Create a notification for this product.
    Date Public
    2024-03-25 23:00
    Show details on NVD website

    {
      "containers": {
        "adp": [
          {
            "providerMetadata": {
              "dateUpdated": "2024-08-01T19:25:42.177Z",
              "orgId": "af854a3a-2127-422b-91ae-364da2661108",
              "shortName": "CVE"
            },
            "references": [
              {
                "tags": [
                  "patch",
                  "x_transferred"
                ],
                "url": "https://github.com/wolfSSL/wolfssh/pull/670"
              },
              {
                "tags": [
                  "patch",
                  "x_transferred"
                ],
                "url": "https://github.com/wolfSSL/wolfssh/pull/671"
              },
              {
                "tags": [
                  "vendor-advisory",
                  "x_transferred"
                ],
                "url": "https://www.wolfssl.com/docs/security-vulnerabilities/"
              }
            ],
            "title": "CVE Program Container"
          },
          {
            "affected": [
              {
                "cpes": [
                  "cpe:2.3:a:wolfssh:wolfssh:*:*:*:*:*:*:*:*"
                ],
                "defaultStatus": "unaffected",
                "product": "wolfssh",
                "vendor": "wolfssh",
                "versions": [
                  {
                    "lessThan": "1.4.16",
                    "status": "affected",
                    "version": "0",
                    "versionType": "custom"
                  }
                ]
              }
            ],
            "metrics": [
              {
                "other": {
                  "content": {
                    "id": "CVE-2024-2873",
                    "options": [
                      {
                        "Exploitation": "none"
                      },
                      {
                        "Automatable": "yes"
                      },
                      {
                        "Technical Impact": "total"
                      }
                    ],
                    "role": "CISA Coordinator",
                    "timestamp": "2024-08-01T19:41:19.753078Z",
                    "version": "2.0.3"
                  },
                  "type": "ssvc"
                }
              }
            ],
            "providerMetadata": {
              "dateUpdated": "2024-08-01T19:50:46.158Z",
              "orgId": "134c704f-9b21-4f2e-91b3-4a467353bcc0",
              "shortName": "CISA-ADP"
            },
            "title": "CISA ADP Vulnrichment"
          }
        ],
        "cna": {
          "affected": [
            {
              "defaultStatus": "unaffected",
              "product": "wolfSSH",
              "repo": "https://github.com/wolfSSL/wolfssh",
              "vendor": "wolfSSL Inc.",
              "versions": [
                {
                  "lessThanOrEqual": "v1.4.16",
                  "status": "affected",
                  "version": "0",
                  "versionType": "release bundle"
                }
              ]
            }
          ],
          "datePublic": "2024-03-25T23:00:00.000Z",
          "descriptions": [
            {
              "lang": "en",
              "supportingMedia": [
                {
                  "base64": false,
                  "type": "text/html",
                  "value": "A vulnerability was found in wolfSSH\u0027s server-side state machine before versions 1.4.17. A malicious client could create channels without first performing user authentication, resulting in unauthorized access.\u003cbr\u003e"
                }
              ],
              "value": "A vulnerability was found in wolfSSH\u0027s server-side state machine before versions 1.4.17. A malicious client could create channels without first performing user authentication, resulting in unauthorized access.\n"
            }
          ],
          "impacts": [
            {
              "capecId": "CAPEC-115",
              "descriptions": [
                {
                  "lang": "en",
                  "value": "CAPEC-115 Authentication Bypass"
                }
              ]
            }
          ],
          "metrics": [
            {
              "cvssV3_1": {
                "attackComplexity": "LOW",
                "attackVector": "NETWORK",
                "availabilityImpact": "NONE",
                "baseScore": 9.1,
                "baseSeverity": "CRITICAL",
                "confidentialityImpact": "HIGH",
                "integrityImpact": "HIGH",
                "privilegesRequired": "NONE",
                "scope": "UNCHANGED",
                "userInteraction": "NONE",
                "vectorString": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:N",
                "version": "3.1"
              },
              "format": "CVSS",
              "scenarios": [
                {
                  "lang": "en",
                  "value": "GENERAL"
                }
              ]
            }
          ],
          "problemTypes": [
            {
              "descriptions": [
                {
                  "cweId": "CWE-287",
                  "description": "CWE-287 Improper Authentication",
                  "lang": "en",
                  "type": "CWE"
                }
              ]
            }
          ],
          "providerMetadata": {
            "dateUpdated": "2024-03-25T21:58:52.325Z",
            "orgId": "50d2cd11-d01a-48ed-9441-5bfce9d63b27",
            "shortName": "wolfSSL"
          },
          "references": [
            {
              "tags": [
                "patch"
              ],
              "url": "https://github.com/wolfSSL/wolfssh/pull/670"
            },
            {
              "tags": [
                "patch"
              ],
              "url": "https://github.com/wolfSSL/wolfssh/pull/671"
            },
            {
              "tags": [
                "vendor-advisory"
              ],
              "url": "https://www.wolfssl.com/docs/security-vulnerabilities/"
            }
          ],
          "solutions": [
            {
              "lang": "en",
              "supportingMedia": [
                {
                  "base64": false,
                  "type": "text/html",
                  "value": "\u003cspan style=\"background-color: transparent;\"\u003eThe fix for this issue is located in the following GitHub Pull Requests:\u003cbr\u003e\u003cul\u003e\u003cli\u003e\u003ca target=\"_blank\" rel=\"nofollow\" href=\"https://github.com/wolfSSL/wolfssh/pull/670\"\u003ehttps://github.com/wolfSSL/wolfssh/pull/670\u003c/a\u003e\u003cbr\u003e\u003c/li\u003e\u003cli\u003e\u003ca target=\"_blank\" rel=\"nofollow\" href=\"https://github.com/wolfSSL/wolfssh/pull/671\"\u003ehttps://github.com/wolfSSL/wolfssh/pull/671\u003c/a\u003e\u003cbr\u003e\u003c/li\u003e\u003c/ul\u003e\u003c/span\u003e"
                }
              ],
              "value": "The fix for this issue is located in the following GitHub Pull Requests:\n  *   https://github.com/wolfSSL/wolfssh/pull/670 \n\n  *   https://github.com/wolfSSL/wolfssh/pull/671 \n\n"
            }
          ],
          "source": {
            "discovery": "UNKNOWN"
          },
          "title": "User authentication bypass in wolfSSH server",
          "x_generator": {
            "engine": "Vulnogram 0.1.0-dev"
          }
        }
      },
      "cveMetadata": {
        "assignerOrgId": "50d2cd11-d01a-48ed-9441-5bfce9d63b27",
        "assignerShortName": "wolfSSL",
        "cveId": "CVE-2024-2873",
        "datePublished": "2024-03-25T21:58:52.325Z",
        "dateReserved": "2024-03-25T20:28:07.035Z",
        "dateUpdated": "2024-08-01T19:50:46.158Z",
        "state": "PUBLISHED"
      },
      "dataType": "CVE_RECORD",
      "dataVersion": "5.1"
    }

    CVE-2026-84897 (GCVE-0-2026-84897)

    Vulnerability from cvelistv5 – Published: 2026-10-07 02:42 – Updated: 2026-10-07 18:37
    VLAI
    Title
    wolfSSH server accepts server-to-client DH group exchange messages from an unauthenticated client, causing pre-authentication primality-test CPU exhaustion and key exchange role confusion
    Summary
    src/internal.c in wolfSSL wolfSSH through 1.5.0 admits the server-to-client Diffie-Hellman group exchange messages SSH_MSG_KEX_DH_GEX_GROUP (31) and SSH_MSG_KEX_DH_GEX_REPLY (33) when a server receives them from an unauthenticated client. IsMessageAllowedServer() applies no direction check to the key exchange message range: when the peer is keying and no particular message is expected, which is the state a server is in for the whole window after it processes the client's KEXINIT because nothing sets handshake->expectMsgId there, the function falls out of its expectation branch without a verdict and reaches a numeric bound that admits every message id from 30 through 34. A client that negotiates diffie-hellman-group-exchange-sha256 and then sends message 31 makes the server run the client-side handler DoKexDhGexGroup(), which validates the attacker-supplied group with two 8-round Miller-Rabin primality tests, one on p and one on (p-1)/2, on a value of up to 8192 bits. The handler then returns success: the server stores the attacker's prime and generator, generates a Diffie-Hellman key pair in the attacker's group, and sends the client-role message SSH_MSG_KEX_DH_GEX_INIT (32) back to the attacker. Published RFC 3526 safe primes are the worst-case input and cost the attacker nothing to obtain. The primality validation was added in 1.5.0; versions from 1.2.0 through 1.4.22 admit the same message and enter the same client-role path without the primality cost. Message 33 is admitted as well, but on a server it is rejected before any cryptography because no public key check callback is registered, so it carries no comparable cost. Builds that define WOLFSSH_NO_DH_GEX_SHA256, which is implied by WOLFSSH_NO_DH or NO_SHA256, are unaffected.
    SSVC
    Exploitation: none Automatable: yes Technical Impact: partial
    CISA Coordinator · CISA-ADP (v2.0.3)
    Decision recorded 2026-10-07 18:36 UTC
    CWE
    • CWE-372 - Incomplete Internal State Distinction
    • CWE-405 - Asymmetric Resource Consumption (Amplification)
    • CWE-400 - Uncontrolled Resource Consumption
    Assigner
    wolfSSL CNA under the icscert root
    CNA scorecard B 80/100 over 52 records in the last 180 days details
    Impacted products
    Vendor Product Version
    wolfSSL Inc. wolfSSH Affected: 1.2.0 , ≤ 1.5.0 (semver)
    Create a notification for this product.
    Show details on NVD website

    {
      "containers": {
        "adp": [
          {
            "metrics": [
              {
                "other": {
                  "content": {
                    "id": "CVE-2026-84897",
                    "options": [
                      {
                        "Exploitation": "none"
                      },
                      {
                        "Automatable": "yes"
                      },
                      {
                        "Technical Impact": "partial"
                      }
                    ],
                    "role": "CISA Coordinator",
                    "timestamp": "2026-10-07T18:36:45.750446Z",
                    "version": "2.0.3"
                  },
                  "type": "ssvc"
                }
              }
            ],
            "providerMetadata": {
              "dateUpdated": "2026-10-07T18:37:00.316Z",
              "orgId": "134c704f-9b21-4f2e-91b3-4a467353bcc0",
              "shortName": "CISA-ADP"
            },
            "title": "CISA ADP Vulnrichment"
          }
        ],
        "cna": {
          "affected": [
            {
              "defaultStatus": "unaffected",
              "modules": [
                "key exchange"
              ],
              "product": "wolfSSH",
              "programFiles": [
                "src/internal.c"
              ],
              "programRoutines": [
                {
                  "name": "IsMessageAllowedServer"
                },
                {
                  "name": "DoKexDhGexGroup"
                },
                {
                  "name": "ValidateKexDhGexGroup"
                }
              ],
              "repo": "https://github.com/wolfSSL/wolfssh",
              "vendor": "wolfSSL Inc.",
              "versions": [
                {
                  "changes": [
                    {
                      "at": "1.6.0",
                      "status": "unaffected"
                    }
                  ],
                  "lessThanOrEqual": "1.5.0",
                  "status": "affected",
                  "version": "1.2.0",
                  "versionType": "semver"
                }
              ]
            }
          ],
          "credits": [
            {
              "lang": "en",
              "type": "finder",
              "value": "Abdullah Al Ishtiaq, Kai Tu, Matthew Carter, Xiaotian Zhou, Ananna Rahman, Yilu Dong, Tianwei Yu, Ali Ranjbar, Syed Rafiul Hussain"
            }
          ],
          "descriptions": [
            {
              "lang": "en",
              "supportingMedia": [
                {
                  "base64": false,
                  "type": "text/html",
                  "value": "\u003ccode\u003esrc/internal.c\u003c/code\u003e in wolfSSL wolfSSH through 1.5.0 admits the server-to-client Diffie-Hellman group exchange messages \u003ccode\u003eSSH_MSG_KEX_DH_GEX_GROUP\u003c/code\u003e (31) and \u003ccode\u003eSSH_MSG_KEX_DH_GEX_REPLY\u003c/code\u003e (33) when a server receives them from an unauthenticated client. \u003ccode\u003eIsMessageAllowedServer()\u003c/code\u003e applies no direction check to the key exchange message range: when the peer is keying and no particular message is expected, which is the state a server is in for the whole window after it processes the client\u0027s KEXINIT because nothing sets \u003ccode\u003ehandshake-\u0026gt;expectMsgId\u003c/code\u003e there, the function falls out of its expectation branch without a verdict and reaches a numeric bound that admits every message id from 30 through 34. A client that negotiates \u003ccode\u003ediffie-hellman-group-exchange-sha256\u003c/code\u003e and then sends message 31 makes the server run the client-side handler \u003ccode\u003eDoKexDhGexGroup()\u003c/code\u003e, which validates the attacker-supplied group with two 8-round Miller-Rabin primality tests, one on \u003ccode\u003ep\u003c/code\u003e and one on \u003ccode\u003e(p-1)/2\u003c/code\u003e, on a value of up to 8192 bits. The handler then returns success: the server stores the attacker\u0027s prime and generator, generates a Diffie-Hellman key pair in the attacker\u0027s group, and sends the client-role message \u003ccode\u003eSSH_MSG_KEX_DH_GEX_INIT\u003c/code\u003e (32) back to the attacker. Published RFC 3526 safe primes are the worst-case input and cost the attacker nothing to obtain. The primality validation was added in 1.5.0; versions from 1.2.0 through 1.4.22 admit the same message and enter the same client-role path without the primality cost. Message 33 is admitted as well, but on a server it is rejected before any cryptography because no public key check callback is registered, so it carries no comparable cost. Builds that define \u003ccode\u003eWOLFSSH_NO_DH_GEX_SHA256\u003c/code\u003e, which is implied by \u003ccode\u003eWOLFSSH_NO_DH\u003c/code\u003e or \u003ccode\u003eNO_SHA256\u003c/code\u003e, are unaffected.\u003cbr\u003e"
                }
              ],
              "value": "src/internal.c in wolfSSL wolfSSH through 1.5.0 admits the server-to-client Diffie-Hellman group exchange messages SSH_MSG_KEX_DH_GEX_GROUP (31) and SSH_MSG_KEX_DH_GEX_REPLY (33) when a server receives them from an unauthenticated client. IsMessageAllowedServer() applies no direction check to the key exchange message range: when the peer is keying and no particular message is expected, which is the state a server is in for the whole window after it processes the client\u0027s KEXINIT because nothing sets handshake-\u003eexpectMsgId there, the function falls out of its expectation branch without a verdict and reaches a numeric bound that admits every message id from 30 through 34. A client that negotiates diffie-hellman-group-exchange-sha256 and then sends message 31 makes the server run the client-side handler DoKexDhGexGroup(), which validates the attacker-supplied group with two 8-round Miller-Rabin primality tests, one on p and one on (p-1)/2, on a value of up to 8192 bits. The handler then returns success: the server stores the attacker\u0027s prime and generator, generates a Diffie-Hellman key pair in the attacker\u0027s group, and sends the client-role message SSH_MSG_KEX_DH_GEX_INIT (32) back to the attacker. Published RFC 3526 safe primes are the worst-case input and cost the attacker nothing to obtain. The primality validation was added in 1.5.0; versions from 1.2.0 through 1.4.22 admit the same message and enter the same client-role path without the primality cost. Message 33 is admitted as well, but on a server it is rejected before any cryptography because no public key check callback is registered, so it carries no comparable cost. Builds that define WOLFSSH_NO_DH_GEX_SHA256, which is implied by WOLFSSH_NO_DH or NO_SHA256, are unaffected."
            }
          ],
          "impacts": [
            {
              "descriptions": [
                {
                  "lang": "en",
                  "value": "Pre-authentication CPU exhaustion with a high work-per-byte ratio, plus key exchange role confusion. One unauthenticated packet of roughly 1 KB costs a wolfSSH server about 0.48 seconds of single-core CPU when it carries the 4096-bit RFC 3526 safe prime, and about 5.8 seconds when it carries the 8192-bit one, measured on a 64-bit desktop core; a single-threaded or embedded server is unavailable for that whole interval, and the cost repeats on every connection. The server then stores the attacker-chosen group, generates a Diffie-Hellman key pair in it, and sends the client-role message SSH_MSG_KEX_DH_GEX_INIT back to the attacker, so the key exchange continues in the wrong role until it fails. Reaching the 8192-bit case requires a wolfSSL math configuration that can represent an 8192-bit integer; a default build tops out near 4096 bits and caps the burn at roughly half a second."
                }
              ]
            },
            {
              "capecId": "CAPEC-227",
              "descriptions": [
                {
                  "lang": "en",
                  "value": "CAPEC-227 Sustained Client Engagement"
                }
              ]
            }
          ],
          "metrics": [
            {
              "cvssV4_0": {
                "Automatable": "YES",
                "Recovery": "NOT_DEFINED",
                "Safety": "NOT_DEFINED",
                "attackComplexity": "LOW",
                "attackRequirements": "NONE",
                "attackVector": "NETWORK",
                "baseScore": 6.9,
                "baseSeverity": "MEDIUM",
                "exploitMaturity": "NOT_DEFINED",
                "privilegesRequired": "NONE",
                "providerUrgency": "NOT_DEFINED",
                "subAvailabilityImpact": "NONE",
                "subConfidentialityImpact": "NONE",
                "subIntegrityImpact": "NONE",
                "userInteraction": "NONE",
                "valueDensity": "NOT_DEFINED",
                "vectorString": "CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:N/VI:N/VA:L/SC:N/SI:N/SA:N/AU:Y",
                "version": "4.0",
                "vulnAvailabilityImpact": "LOW",
                "vulnConfidentialityImpact": "NONE",
                "vulnIntegrityImpact": "NONE",
                "vulnerabilityResponseEffort": "NOT_DEFINED"
              },
              "format": "CVSS",
              "scenarios": [
                {
                  "lang": "en",
                  "value": "GENERAL"
                }
              ]
            }
          ],
          "problemTypes": [
            {
              "descriptions": [
                {
                  "cweId": "CWE-372",
                  "description": "CWE-372 Incomplete Internal State Distinction",
                  "lang": "en",
                  "type": "CWE"
                }
              ]
            },
            {
              "descriptions": [
                {
                  "cweId": "CWE-405",
                  "description": "CWE-405 Asymmetric Resource Consumption (Amplification)",
                  "lang": "en",
                  "type": "CWE"
                }
              ]
            },
            {
              "descriptions": [
                {
                  "cweId": "CWE-400",
                  "description": "CWE-400 Uncontrolled Resource Consumption",
                  "lang": "en",
                  "type": "CWE"
                }
              ]
            }
          ],
          "providerMetadata": {
            "dateUpdated": "2026-10-07T02:42:28.388Z",
            "orgId": "50d2cd11-d01a-48ed-9441-5bfce9d63b27",
            "shortName": "wolfSSL"
          },
          "references": [
            {
              "name": "Fix PR #1221",
              "tags": [
                "patch"
              ],
              "url": "https://github.com/wolfSSL/wolfssh/pull/1221"
            },
            {
              "name": "Fix commit a472f1ee (reject the KEX replies a server never receives)",
              "tags": [
                "patch"
              ],
              "url": "https://github.com/wolfSSL/wolfssh/commit/a472f1ee2b653f623d85ef2297321733f1dbfd22"
            },
            {
              "name": "RFC 4419 sections 3 and 5 (SSH_MSG_KEX_DH_GEX_GROUP and SSH_MSG_KEX_DH_GEX_REPLY are sent by the server)",
              "tags": [
                "technical-description"
              ],
              "url": "https://www.rfc-editor.org/rfc/rfc4419.html"
            },
            {
              "name": "RFC 3526 (published MODP safe primes usable as the worst-case input)",
              "tags": [
                "technical-description"
              ],
              "url": "https://www.rfc-editor.org/rfc/rfc3526.html"
            }
          ],
          "source": {
            "discovery": "EXTERNAL"
          },
          "title": "wolfSSH server accepts server-to-client DH group exchange messages from an unauthenticated client, causing pre-authentication primality-test CPU exhaustion and key exchange role confusion",
          "workarounds": [
            {
              "lang": "en",
              "supportingMedia": [
                {
                  "base64": false,
                  "type": "text/html",
                  "value": "Build wolfSSH with \u003ccode\u003eWOLFSSH_NO_DH_GEX_SHA256\u003c/code\u003e defined so that \u003ccode\u003ediffie-hellman-group-exchange-sha256\u003c/code\u003e is neither offered nor accepted, which removes the message 31 dispatch path entirely. Where group exchange must stay available, lowering \u003ccode\u003eWOLFSSH_DEFAULT_GEXDH_MAX\u003c/code\u003e reduces the size of the value a peer can submit for primality testing and so the cost of a single packet, but it does not stop a server from accepting the message.\u003cbr\u003e"
                }
              ],
              "value": "Build wolfSSH with WOLFSSH_NO_DH_GEX_SHA256 defined so that diffie-hellman-group-exchange-sha256 is neither offered nor accepted, which removes the message 31 dispatch path entirely. Where group exchange must stay available, lowering WOLFSSH_DEFAULT_GEXDH_MAX reduces the size of the value a peer can submit for primality testing and so the cost of a single packet, but it does not stop a server from accepting the message."
            }
          ],
          "x_generator": {
            "engine": "Vulnogram 1.0.5"
          }
        }
      },
      "cveMetadata": {
        "assignerOrgId": "50d2cd11-d01a-48ed-9441-5bfce9d63b27",
        "assignerShortName": "wolfSSL",
        "cveId": "CVE-2026-84897",
        "datePublished": "2026-10-07T02:42:28.388Z",
        "dateReserved": "2026-09-02T15:07:44.223Z",
        "dateUpdated": "2026-10-07T18:37:00.316Z",
        "state": "PUBLISHED"
      },
      "dataType": "CVE_RECORD",
      "dataVersion": "5.2"
    }

    CVE-2026-83742 (GCVE-0-2026-83742)

    Vulnerability from cvelistv5 – Published: 2026-10-07 02:41 – Updated: 2026-10-07 11:30
    VLAI
    Title
    wstrncat() unsigned integer underflow leads to an off-by-one null write in wolfSSH on non-Windows platforms
    Summary
    Unsigned integer underflow in wstrncat() in src/port.c in wolfSSL wolfSSH from v1.4.11 through v1.5.0 on non-Windows platforms allows an authenticated remote attacker to write one out-of-bounds null byte past the end of a stack buffer by sending a crafted SFTP path. wolfSSH_RealPath() in src/ssh.c appends each path component with a remaining-size bound (outSz - curSz) rather than the full destination size, so once the accumulated path reaches half the output buffer the size_t computation n - strlen(s1) - 1 wraps to near SIZE_MAX. The strncat() call is then effectively unbounded and copies the whole component; when that component exactly fills the remainder of the buffer, its terminating null is written one byte past the end. The caller's own length check keeps the copied data inside the buffer, so the overflow is limited to that single null byte, which may corrupt an adjacent stack value and crash the process. Applications that call the public wolfSSH_RealPath() with an output buffer smaller than the input path are additionally exposed to an unbounded copy, because the word32 expression outSz - segSz in that length check also wraps.
    SSVC
    Exploitation: none Automatable: no Technical Impact: partial
    CISA Coordinator · CISA-ADP (v2.0.3)
    Decision recorded 2026-10-07 11:30 UTC
    CWE
    • CWE-191 - Integer Underflow (Wrap or Wraparound)
    • CWE-121 - Stack-based Buffer Overflow
    • CWE-193 - Off-by-one Error
    Assigner
    wolfSSL CNA under the icscert root
    CNA scorecard B 80/100 over 52 records in the last 180 days details
    Impacted products
    Vendor Product Version
    wolfSSL Inc. wolfSSH Affected: 1.4.11 , ≤ 1.5.0 (semver)
    Create a notification for this product.
    Show details on NVD website

    {
      "containers": {
        "adp": [
          {
            "metrics": [
              {
                "other": {
                  "content": {
                    "id": "CVE-2026-83742",
                    "options": [
                      {
                        "Exploitation": "none"
                      },
                      {
                        "Automatable": "no"
                      },
                      {
                        "Technical Impact": "partial"
                      }
                    ],
                    "role": "CISA Coordinator",
                    "timestamp": "2026-10-07T11:30:20.098721Z",
                    "version": "2.0.3"
                  },
                  "type": "ssvc"
                }
              }
            ],
            "providerMetadata": {
              "dateUpdated": "2026-10-07T11:30:28.937Z",
              "orgId": "134c704f-9b21-4f2e-91b3-4a467353bcc0",
              "shortName": "CISA-ADP"
            },
            "title": "CISA ADP Vulnrichment"
          }
        ],
        "cna": {
          "affected": [
            {
              "defaultStatus": "unaffected",
              "product": "wolfSSH",
              "programFiles": [
                "src/port.c",
                "src/ssh.c"
              ],
              "repo": "https://github.com/wolfSSL/wolfssh",
              "vendor": "wolfSSL Inc.",
              "versions": [
                {
                  "changes": [
                    {
                      "at": "1.6.0",
                      "status": "unaffected"
                    }
                  ],
                  "lessThanOrEqual": "1.5.0",
                  "status": "affected",
                  "version": "1.4.11",
                  "versionType": "semver"
                }
              ]
            }
          ],
          "credits": [
            {
              "lang": "en",
              "type": "reporter",
              "value": "Asif Nadaf \u003cpostasif@protonmail.com\u003e, Independent Security Researcher"
            }
          ],
          "descriptions": [
            {
              "lang": "en",
              "supportingMedia": [
                {
                  "base64": false,
                  "type": "text/html",
                  "value": "Unsigned integer underflow in \u003ccode\u003ewstrncat()\u003c/code\u003e in \u003ccode\u003esrc/port.c\u003c/code\u003e in wolfSSL wolfSSH from v1.4.11 through v1.5.0 on non-Windows platforms allows an authenticated remote attacker to write one out-of-bounds null byte past the end of a stack buffer by sending a crafted SFTP path. \u003ccode\u003ewolfSSH_RealPath()\u003c/code\u003e in \u003ccode\u003esrc/ssh.c\u003c/code\u003e appends each path component with a remaining-size bound (\u003ccode\u003eoutSz - curSz\u003c/code\u003e) rather than the full destination size, so once the accumulated path reaches half the output buffer the \u003ccode\u003esize_t\u003c/code\u003e computation \u003ccode\u003en - strlen(s1) - 1\u003c/code\u003e wraps to near \u003ccode\u003eSIZE_MAX\u003c/code\u003e. The \u003ccode\u003estrncat()\u003c/code\u003e call is then effectively unbounded and copies the whole component; when that component exactly fills the remainder of the buffer, its terminating null is written one byte past the end. The caller\u0027s own length check keeps the copied data inside the buffer, so the overflow is limited to that single null byte, which may corrupt an adjacent stack value and crash the process. Applications that call the public \u003ccode\u003ewolfSSH_RealPath()\u003c/code\u003e with an output buffer smaller than the input path are additionally exposed to an unbounded copy, because the \u003ccode\u003eword32\u003c/code\u003e expression \u003ccode\u003eoutSz - segSz\u003c/code\u003e in that length check also wraps."
                }
              ],
              "value": "Unsigned integer underflow in wstrncat() in src/port.c in wolfSSL wolfSSH from v1.4.11 through v1.5.0 on non-Windows platforms allows an authenticated remote attacker to write one out-of-bounds null byte past the end of a stack buffer by sending a crafted SFTP path. wolfSSH_RealPath() in src/ssh.c appends each path component with a remaining-size bound (outSz - curSz) rather than the full destination size, so once the accumulated path reaches half the output buffer the size_t computation n - strlen(s1) - 1 wraps to near SIZE_MAX. The strncat() call is then effectively unbounded and copies the whole component; when that component exactly fills the remainder of the buffer, its terminating null is written one byte past the end. The caller\u0027s own length check keeps the copied data inside the buffer, so the overflow is limited to that single null byte, which may corrupt an adjacent stack value and crash the process. Applications that call the public wolfSSH_RealPath() with an output buffer smaller than the input path are additionally exposed to an unbounded copy, because the word32 expression outSz - segSz in that length check also wraps."
            }
          ],
          "impacts": [
            {
              "descriptions": [
                {
                  "lang": "en",
                  "value": "Write of a single out-of-bounds null byte immediately past the end of a stack buffer in the SFTP path handlers, which may corrupt an adjacent stack value and cause the server process to misbehave or crash. Requires an authenticated SFTP session. The copied path data itself stays within the buffer, and no out-of-bounds read or information disclosure results, because the out-of-bounds null terminates the string. Applications calling the public wolfSSH_RealPath() with an output buffer smaller than the input path can instead suffer an unbounded stack buffer overflow."
                }
              ]
            },
            {
              "capecId": "CAPEC-100",
              "descriptions": [
                {
                  "lang": "en",
                  "value": "CAPEC-100 Overflow Buffers"
                }
              ]
            }
          ],
          "metrics": [
            {
              "cvssV4_0": {
                "Automatable": "NO",
                "Recovery": "NOT_DEFINED",
                "Safety": "NOT_DEFINED",
                "attackComplexity": "LOW",
                "attackRequirements": "NONE",
                "attackVector": "NETWORK",
                "baseScore": 5.3,
                "baseSeverity": "MEDIUM",
                "exploitMaturity": "NOT_DEFINED",
                "privilegesRequired": "LOW",
                "providerUrgency": "NOT_DEFINED",
                "subAvailabilityImpact": "NONE",
                "subConfidentialityImpact": "NONE",
                "subIntegrityImpact": "NONE",
                "userInteraction": "NONE",
                "valueDensity": "NOT_DEFINED",
                "vectorString": "CVSS:4.0/AV:N/AC:L/AT:N/PR:L/UI:N/VC:N/VI:L/VA:L/SC:N/SI:N/SA:N/AU:N",
                "version": "4.0",
                "vulnAvailabilityImpact": "LOW",
                "vulnConfidentialityImpact": "NONE",
                "vulnIntegrityImpact": "LOW",
                "vulnerabilityResponseEffort": "NOT_DEFINED"
              },
              "format": "CVSS",
              "scenarios": [
                {
                  "lang": "en",
                  "value": "GENERAL"
                }
              ]
            }
          ],
          "problemTypes": [
            {
              "descriptions": [
                {
                  "cweId": "CWE-191",
                  "description": "CWE-191 Integer Underflow (Wrap or Wraparound)",
                  "lang": "en",
                  "type": "CWE"
                }
              ]
            },
            {
              "descriptions": [
                {
                  "cweId": "CWE-121",
                  "description": "CWE-121 Stack-based Buffer Overflow",
                  "lang": "en",
                  "type": "CWE"
                }
              ]
            },
            {
              "descriptions": [
                {
                  "cweId": "CWE-193",
                  "description": "CWE-193 Off-by-one Error",
                  "lang": "en",
                  "type": "CWE"
                }
              ]
            }
          ],
          "providerMetadata": {
            "dateUpdated": "2026-10-07T02:41:48.911Z",
            "orgId": "50d2cd11-d01a-48ed-9441-5bfce9d63b27",
            "shortName": "wolfSSL"
          },
          "references": [
            {
              "name": "Fix PR #1084",
              "tags": [
                "patch"
              ],
              "url": "https://github.com/wolfSSL/wolfssh/pull/1084"
            },
            {
              "name": "Fix commit 822e4464 (guard the free space calculation in wstrncat)",
              "tags": [
                "patch"
              ],
              "url": "https://github.com/wolfSSL/wolfssh/commit/822e4464560b467580ea37a2fc03b0988d88b71f"
            },
            {
              "name": "Fix commit 513e52b1 (bounded scan replacing strlen in wstrncat)",
              "tags": [
                "patch"
              ],
              "url": "https://github.com/wolfSSL/wolfssh/commit/513e52b18927a4e3f7cf17ecaf107958e56139de"
            },
            {
              "name": "Hardening commit fbc7cd88 (wolfSSH_RealPath length check and append bounds)",
              "tags": [
                "patch"
              ],
              "url": "https://github.com/wolfSSL/wolfssh/commit/fbc7cd88a23b59a45a584020a4c7242d9bd70f35"
            }
          ],
          "source": {
            "discovery": "EXTERNAL"
          },
          "title": "wstrncat() unsigned integer underflow leads to an off-by-one null write in wolfSSH on non-Windows platforms",
          "x_generator": {
            "engine": "Vulnogram 1.0.5"
          }
        }
      },
      "cveMetadata": {
        "assignerOrgId": "50d2cd11-d01a-48ed-9441-5bfce9d63b27",
        "assignerShortName": "wolfSSL",
        "cveId": "CVE-2026-83742",
        "datePublished": "2026-10-07T02:41:48.911Z",
        "dateReserved": "2026-08-31T22:49:43.798Z",
        "dateUpdated": "2026-10-07T11:30:28.937Z",
        "state": "PUBLISHED"
      },
      "dataType": "CVE_RECORD",
      "dataVersion": "5.2"
    }

    CVE-2026-81535 (GCVE-0-2026-81535)

    Vulnerability from cvelistv5 – Published: 2026-10-07 02:39 – Updated: 2026-10-07 18:37
    VLAI
    Title
    wolfSSH SSH client accepts unsolicited forwarded-tcpip channel opens without an authorization check
    Summary
    In wolfSSH through 1.5.0 built with --enable-fwd, DoChannelOpen() in src/internal.c gates only direct-tcpip channel opens with the forwarding policy callback. forwarded-tcpip opens are admitted without an authorization check and are not capped in number, allowing a malicious SSH peer to make an endpoint allocate unbounded per-channel buffers for forwarding channels the application never authorized. A client also does not check a forwarded-tcpip open against the forwards it registered with a tcpip-forward request, as RFC 4254 section 7.2 requires, so a malicious server can open forwarding channels for addresses and ports the client never asked it to forward.
    SSVC
    Exploitation: none Automatable: no Technical Impact: partial
    CISA Coordinator · CISA-ADP (v2.0.3)
    Decision recorded 2026-10-07 18:37 UTC
    CWE
    Assigner
    wolfSSL CNA under the icscert root
    CNA scorecard B 80/100 over 52 records in the last 180 days details
    Impacted products
    Vendor Product Version
    wolfSSL Inc. wolfSSH Affected: 1.4.8 , ≤ 1.5.0 (semver)
    Create a notification for this product.
    Show details on NVD website

    {
      "containers": {
        "adp": [
          {
            "metrics": [
              {
                "other": {
                  "content": {
                    "id": "CVE-2026-81535",
                    "options": [
                      {
                        "Exploitation": "none"
                      },
                      {
                        "Automatable": "no"
                      },
                      {
                        "Technical Impact": "partial"
                      }
                    ],
                    "role": "CISA Coordinator",
                    "timestamp": "2026-10-07T18:37:10.078645Z",
                    "version": "2.0.3"
                  },
                  "type": "ssvc"
                }
              }
            ],
            "providerMetadata": {
              "dateUpdated": "2026-10-07T18:37:36.186Z",
              "orgId": "134c704f-9b21-4f2e-91b3-4a467353bcc0",
              "shortName": "CISA-ADP"
            },
            "title": "CISA ADP Vulnrichment"
          }
        ],
        "cna": {
          "affected": [
            {
              "defaultStatus": "unaffected",
              "modules": [
                "forwarding"
              ],
              "product": "wolfSSH",
              "programFiles": [
                "src/internal.c"
              ],
              "repo": "https://github.com/wolfSSL/wolfssh",
              "vendor": "wolfSSL Inc.",
              "versions": [
                {
                  "changes": [
                    {
                      "at": "1.6.0",
                      "status": "unaffected"
                    }
                  ],
                  "lessThanOrEqual": "1.5.0",
                  "status": "affected",
                  "version": "1.4.8",
                  "versionType": "semver"
                }
              ]
            }
          ],
          "credits": [
            {
              "lang": "en",
              "type": "finder",
              "value": "zhangph (GitHub afldl)"
            }
          ],
          "descriptions": [
            {
              "lang": "en",
              "supportingMedia": [
                {
                  "base64": false,
                  "type": "text/html",
                  "value": "In wolfSSH through 1.5.0 built with\u0026nbsp;\u003ccode\u003e--enable-fwd\u003c/code\u003e,\u0026nbsp;\u003ccode\u003eDoChannelOpen()\u003c/code\u003e\u0026nbsp;in\u0026nbsp;\u003ccode\u003esrc/internal.c\u003c/code\u003e\u0026nbsp;gates only\u0026nbsp;\u003ccode\u003edirect-tcpip\u003c/code\u003e\u0026nbsp;channel opens with the forwarding policy callback.\u0026nbsp;\u003ccode\u003eforwarded-tcpip\u003c/code\u003e\u0026nbsp;opens are admitted without an authorization check and are not capped in number, allowing a malicious SSH peer to make an endpoint allocate unbounded per-channel buffers for forwarding channels the application never authorized. A client also does not check a\u0026nbsp;\u003ccode\u003eforwarded-tcpip\u003c/code\u003e\u0026nbsp;open against the forwards it registered with a\u0026nbsp;\u003ccode\u003etcpip-forward\u003c/code\u003e\u0026nbsp;request, as RFC 4254 section 7.2 requires, so a malicious server can open forwarding channels for addresses and ports the client never asked it to forward.\u003cbr\u003e"
                }
              ],
              "value": "In wolfSSH through 1.5.0 built with\u00a0--enable-fwd,\u00a0DoChannelOpen()\u00a0in\u00a0src/internal.c\u00a0gates only\u00a0direct-tcpip\u00a0channel opens with the forwarding policy callback.\u00a0forwarded-tcpip\u00a0opens are admitted without an authorization check and are not capped in number, allowing a malicious SSH peer to make an endpoint allocate unbounded per-channel buffers for forwarding channels the application never authorized. A client also does not check a\u00a0forwarded-tcpip\u00a0open against the forwards it registered with a\u00a0tcpip-forward\u00a0request, as RFC 4254 section 7.2 requires, so a malicious server can open forwarding channels for addresses and ports the client never asked it to forward."
            }
          ],
          "impacts": [
            {
              "capecId": "CAPEC-130",
              "descriptions": [
                {
                  "lang": "en",
                  "value": "CAPEC-130 Excessive Allocation"
                }
              ]
            }
          ],
          "metrics": [
            {
              "cvssV4_0": {
                "Automatable": "NOT_DEFINED",
                "Recovery": "NOT_DEFINED",
                "Safety": "NOT_DEFINED",
                "attackComplexity": "LOW",
                "attackRequirements": "PRESENT",
                "attackVector": "NETWORK",
                "baseScore": 6.3,
                "baseSeverity": "MEDIUM",
                "exploitMaturity": "NOT_DEFINED",
                "privilegesRequired": "NONE",
                "providerUrgency": "NOT_DEFINED",
                "subAvailabilityImpact": "NONE",
                "subConfidentialityImpact": "NONE",
                "subIntegrityImpact": "NONE",
                "userInteraction": "NONE",
                "valueDensity": "NOT_DEFINED",
                "vectorString": "CVSS:4.0/AV:N/AC:L/AT:P/PR:N/UI:N/VC:N/VI:N/VA:L/SC:N/SI:N/SA:N",
                "version": "4.0",
                "vulnAvailabilityImpact": "LOW",
                "vulnConfidentialityImpact": "NONE",
                "vulnIntegrityImpact": "NONE",
                "vulnerabilityResponseEffort": "NOT_DEFINED"
              },
              "format": "CVSS",
              "scenarios": [
                {
                  "lang": "en",
                  "value": "GENERAL"
                }
              ]
            }
          ],
          "problemTypes": [
            {
              "descriptions": [
                {
                  "cweId": "CWE-862",
                  "description": "CWE-862 Missing Authorization",
                  "lang": "en",
                  "type": "CWE"
                }
              ]
            },
            {
              "descriptions": [
                {
                  "cweId": "CWE-863",
                  "description": "CWE-863 Incorrect Authorization",
                  "lang": "en",
                  "type": "CWE"
                }
              ]
            }
          ],
          "providerMetadata": {
            "dateUpdated": "2026-10-07T02:39:27.830Z",
            "orgId": "50d2cd11-d01a-48ed-9441-5bfce9d63b27",
            "shortName": "wolfSSL"
          },
          "references": [
            {
              "tags": [
                "patch"
              ],
              "url": "https://github.com/wolfSSL/wolfssh/commit/616eb681e70759c30c3ba158f2b18d7bd954def8"
            },
            {
              "name": "Fix commit e396a0a4 (match forwarded-tcpip opens to registered forwards, PR #1148)",
              "tags": [
                "patch"
              ],
              "url": "https://github.com/wolfSSL/wolfssh/commit/e396a0a4b6b367f10270287446a4be0071742b5c"
            },
            {
              "name": "Fix commit 79a7f299 (match forwarded-tcpip on every client session, PR #1220)",
              "tags": [
                "patch"
              ],
              "url": "https://github.com/wolfSSL/wolfssh/commit/79a7f299337a28aa561409688a268d0efe6e295c"
            }
          ],
          "source": {
            "discovery": "EXTERNAL"
          },
          "title": "wolfSSH SSH client accepts unsolicited forwarded-tcpip channel opens without an authorization check",
          "x_generator": {
            "engine": "Vulnogram 1.0.5"
          }
        }
      },
      "cveMetadata": {
        "assignerOrgId": "50d2cd11-d01a-48ed-9441-5bfce9d63b27",
        "assignerShortName": "wolfSSL",
        "cveId": "CVE-2026-81535",
        "datePublished": "2026-10-07T02:39:27.830Z",
        "dateReserved": "2026-08-26T23:09:37.634Z",
        "dateUpdated": "2026-10-07T18:37:36.186Z",
        "state": "PUBLISHED"
      },
      "dataType": "CVE_RECORD",
      "dataVersion": "5.2"
    }

    CVE-2026-16516 (GCVE-0-2026-16516)

    Vulnerability from cvelistv5 – Published: 2026-10-07 02:38 – Updated: 2026-10-07 11:17
    VLAI
    Title
    wolfSSH ECDSA host key curve not validated against negotiated algorithm
    Summary
    wolfSSH does not validate that the ECDSA curve identifier in a KEXDH_REPLY host key blob matches the algorithm negotiated during key exchange. In ParseECCPubKey() (src/internal.c), the blob's algorithm string is used to derive the curve via NameToId/wcPrimeForId without checking against the negotiated ssh->handshake->pubKeyId, and the RFC 5656 curve identifier string is discarded via GetSkip() rather than compared. An active network man-in-the-middle attacker can substitute a host key blob containing a different ECDSA curve, causing the client to import the key on the wrong curve. Because the attacker controls the private key for the substituted curve, signature verification passes. Exploitation requires an active MitM position and a lax public key check callback (e.g., TOFU, algorithm-name-only check, or fingerprint match against the parsed key).
    SSVC
    Exploitation: none Automatable: no Technical Impact: partial
    CISA Coordinator · CISA-ADP (v2.0.3)
    Decision recorded 2026-10-07 11:15 UTC
    CWE
    • CWE-345 - Insufficient Verification of Data Authenticity
    Assigner
    wolfSSL CNA under the icscert root
    CNA scorecard B 80/100 over 52 records in the last 180 days details
    Impacted products
    Vendor Product Version
    wolfSSL Inc. wolfSSH Affected: 0 , ≤ 1.5.0 (semver)
    Create a notification for this product.
    Show details on NVD website

    {
      "containers": {
        "adp": [
          {
            "metrics": [
              {
                "other": {
                  "content": {
                    "id": "CVE-2026-16516",
                    "options": [
                      {
                        "Exploitation": "none"
                      },
                      {
                        "Automatable": "no"
                      },
                      {
                        "Technical Impact": "partial"
                      }
                    ],
                    "role": "CISA Coordinator",
                    "timestamp": "2026-10-07T11:15:50.612166Z",
                    "version": "2.0.3"
                  },
                  "type": "ssvc"
                }
              }
            ],
            "providerMetadata": {
              "dateUpdated": "2026-10-07T11:17:14.029Z",
              "orgId": "134c704f-9b21-4f2e-91b3-4a467353bcc0",
              "shortName": "CISA-ADP"
            },
            "title": "CISA ADP Vulnrichment"
          }
        ],
        "cna": {
          "affected": [
            {
              "defaultStatus": "unaffected",
              "product": "wolfSSH",
              "programFiles": [
                "src/internal.c"
              ],
              "repo": "https://github.com/wolfSSL/wolfssh",
              "vendor": "wolfSSL Inc.",
              "versions": [
                {
                  "changes": [
                    {
                      "at": "1.6.0",
                      "status": "unaffected"
                    }
                  ],
                  "lessThanOrEqual": "1.5.0",
                  "status": "affected",
                  "version": "0",
                  "versionType": "semver"
                }
              ]
            }
          ],
          "credits": [
            {
              "lang": "en",
              "type": "finder",
              "value": "zhangph (GitHub afldl)"
            }
          ],
          "descriptions": [
            {
              "lang": "en",
              "supportingMedia": [
                {
                  "base64": false,
                  "type": "text/html",
                  "value": "wolfSSH does not validate that the ECDSA curve identifier in a KEXDH_REPLY host key blob matches the algorithm negotiated during key exchange. In \u003ccode\u003eParseECCPubKey()\u003c/code\u003e (\u003ccode\u003esrc/internal.c\u003c/code\u003e), the blob\u0027s algorithm string is used to derive the curve via \u003ccode\u003eNameToId\u003c/code\u003e/\u003ccode\u003ewcPrimeForId\u003c/code\u003e without checking against the negotiated \u003ccode\u003essh-\u0026gt;handshake-\u0026gt;pubKeyId\u003c/code\u003e, and the RFC 5656 curve identifier string is discarded via \u003ccode\u003eGetSkip()\u003c/code\u003e rather than compared. An active network man-in-the-middle attacker can substitute a host key blob containing a different ECDSA curve, causing the client to import the key on the wrong curve. Because the attacker controls the private key for the substituted curve, signature verification passes. Exploitation requires an active MitM position and a lax public key check callback (e.g., TOFU, algorithm-name-only check, or fingerprint match against the parsed key)."
                }
              ],
              "value": "wolfSSH does not validate that the ECDSA curve identifier in a KEXDH_REPLY host key blob matches the algorithm negotiated during key exchange. In ParseECCPubKey() (src/internal.c), the blob\u0027s algorithm string is used to derive the curve via NameToId/wcPrimeForId without checking against the negotiated ssh-\u003ehandshake-\u003epubKeyId, and the RFC 5656 curve identifier string is discarded via GetSkip() rather than compared. An active network man-in-the-middle attacker can substitute a host key blob containing a different ECDSA curve, causing the client to import the key on the wrong curve. Because the attacker controls the private key for the substituted curve, signature verification passes. Exploitation requires an active MitM position and a lax public key check callback (e.g., TOFU, algorithm-name-only check, or fingerprint match against the parsed key)."
            }
          ],
          "impacts": [
            {
              "capecId": "CAPEC-475",
              "descriptions": [
                {
                  "lang": "en",
                  "value": "CAPEC-475 Signature Spoofing by Improper Validation"
                }
              ]
            }
          ],
          "metrics": [
            {
              "cvssV4_0": {
                "Automatable": "NOT_DEFINED",
                "Recovery": "NOT_DEFINED",
                "Safety": "NOT_DEFINED",
                "attackComplexity": "LOW",
                "attackRequirements": "PRESENT",
                "attackVector": "NETWORK",
                "baseScore": 9,
                "baseSeverity": "CRITICAL",
                "exploitMaturity": "NOT_DEFINED",
                "privilegesRequired": "NONE",
                "providerUrgency": "NOT_DEFINED",
                "subAvailabilityImpact": "NONE",
                "subConfidentialityImpact": "LOW",
                "subIntegrityImpact": "HIGH",
                "userInteraction": "NONE",
                "valueDensity": "NOT_DEFINED",
                "vectorString": "CVSS:4.0/AV:N/AC:L/AT:P/PR:N/UI:N/VC:L/VI:H/VA:N/SC:L/SI:H/SA:N",
                "version": "4.0",
                "vulnAvailabilityImpact": "NONE",
                "vulnConfidentialityImpact": "LOW",
                "vulnIntegrityImpact": "HIGH",
                "vulnerabilityResponseEffort": "NOT_DEFINED"
              },
              "format": "CVSS",
              "scenarios": [
                {
                  "lang": "en",
                  "value": "GENERAL"
                }
              ]
            }
          ],
          "problemTypes": [
            {
              "descriptions": [
                {
                  "cweId": "CWE-345",
                  "description": "CWE-345 Insufficient Verification of Data Authenticity",
                  "lang": "en",
                  "type": "CWE"
                }
              ]
            }
          ],
          "providerMetadata": {
            "dateUpdated": "2026-10-07T02:38:23.334Z",
            "orgId": "50d2cd11-d01a-48ed-9441-5bfce9d63b27",
            "shortName": "wolfSSL"
          },
          "references": [
            {
              "name": "ECDSA host key curve substitution - blob curve not validated against negotiated algorithm",
              "tags": [
                "issue-tracking"
              ],
              "url": "https://github.com/wolfSSL/wolfssh/issues/1012"
            },
            {
              "tags": [
                "patch"
              ],
              "url": "https://github.com/wolfSSL/wolfssh/commit/31d13697a608fa1bf9eec11aa6eff1503ade836f"
            }
          ],
          "source": {
            "discovery": "EXTERNAL"
          },
          "title": "wolfSSH ECDSA host key curve not validated against negotiated algorithm",
          "x_generator": {
            "engine": "Vulnogram 1.0.2"
          }
        }
      },
      "cveMetadata": {
        "assignerOrgId": "50d2cd11-d01a-48ed-9441-5bfce9d63b27",
        "assignerShortName": "wolfSSL",
        "cveId": "CVE-2026-16516",
        "datePublished": "2026-10-07T02:38:23.334Z",
        "dateReserved": "2026-07-21T22:09:07.190Z",
        "dateUpdated": "2026-10-07T11:17:14.029Z",
        "state": "PUBLISHED"
      },
      "dataType": "CVE_RECORD",
      "dataVersion": "5.2"
    }

    CVE-2024-2873 (GCVE-0-2024-2873)

    Vulnerability from cvelistv5 – Published: 2024-03-25 21:58 – Updated: 2024-08-01 19:50
    VLAI
    Title
    User authentication bypass in wolfSSH server
    Summary
    A vulnerability was found in wolfSSH's server-side state machine before versions 1.4.17. A malicious client could create channels without first performing user authentication, resulting in unauthorized access.
    SSVC
    Exploitation: none Automatable: yes Technical Impact: total
    CISA Coordinator · CISA-ADP (v2.0.3)
    Decision recorded 2024-08-01 19:41 UTC
    CWE
    • CWE-287 - Improper Authentication
    Assigner
    wolfSSL CNA under the icscert root
    CNA scorecard B 80/100 over 52 records in the last 180 days details
    Impacted products
    Vendor Product Version
    wolfSSL Inc. wolfSSH Affected: 0 , ≤ v1.4.16 (release bundle)
    Create a notification for this product.
    wolfssh wolfssh Affected: 0 , < 1.4.16 (custom)
        cpe:2.3:a:wolfssh:wolfssh:*:*:*:*:*:*:*:*
    Create a notification for this product.
    Date Public
    2024-03-25 23:00
    Show details on NVD website

    {
      "containers": {
        "adp": [
          {
            "providerMetadata": {
              "dateUpdated": "2024-08-01T19:25:42.177Z",
              "orgId": "af854a3a-2127-422b-91ae-364da2661108",
              "shortName": "CVE"
            },
            "references": [
              {
                "tags": [
                  "patch",
                  "x_transferred"
                ],
                "url": "https://github.com/wolfSSL/wolfssh/pull/670"
              },
              {
                "tags": [
                  "patch",
                  "x_transferred"
                ],
                "url": "https://github.com/wolfSSL/wolfssh/pull/671"
              },
              {
                "tags": [
                  "vendor-advisory",
                  "x_transferred"
                ],
                "url": "https://www.wolfssl.com/docs/security-vulnerabilities/"
              }
            ],
            "title": "CVE Program Container"
          },
          {
            "affected": [
              {
                "cpes": [
                  "cpe:2.3:a:wolfssh:wolfssh:*:*:*:*:*:*:*:*"
                ],
                "defaultStatus": "unaffected",
                "product": "wolfssh",
                "vendor": "wolfssh",
                "versions": [
                  {
                    "lessThan": "1.4.16",
                    "status": "affected",
                    "version": "0",
                    "versionType": "custom"
                  }
                ]
              }
            ],
            "metrics": [
              {
                "other": {
                  "content": {
                    "id": "CVE-2024-2873",
                    "options": [
                      {
                        "Exploitation": "none"
                      },
                      {
                        "Automatable": "yes"
                      },
                      {
                        "Technical Impact": "total"
                      }
                    ],
                    "role": "CISA Coordinator",
                    "timestamp": "2024-08-01T19:41:19.753078Z",
                    "version": "2.0.3"
                  },
                  "type": "ssvc"
                }
              }
            ],
            "providerMetadata": {
              "dateUpdated": "2024-08-01T19:50:46.158Z",
              "orgId": "134c704f-9b21-4f2e-91b3-4a467353bcc0",
              "shortName": "CISA-ADP"
            },
            "title": "CISA ADP Vulnrichment"
          }
        ],
        "cna": {
          "affected": [
            {
              "defaultStatus": "unaffected",
              "product": "wolfSSH",
              "repo": "https://github.com/wolfSSL/wolfssh",
              "vendor": "wolfSSL Inc.",
              "versions": [
                {
                  "lessThanOrEqual": "v1.4.16",
                  "status": "affected",
                  "version": "0",
                  "versionType": "release bundle"
                }
              ]
            }
          ],
          "datePublic": "2024-03-25T23:00:00.000Z",
          "descriptions": [
            {
              "lang": "en",
              "supportingMedia": [
                {
                  "base64": false,
                  "type": "text/html",
                  "value": "A vulnerability was found in wolfSSH\u0027s server-side state machine before versions 1.4.17. A malicious client could create channels without first performing user authentication, resulting in unauthorized access.\u003cbr\u003e"
                }
              ],
              "value": "A vulnerability was found in wolfSSH\u0027s server-side state machine before versions 1.4.17. A malicious client could create channels without first performing user authentication, resulting in unauthorized access.\n"
            }
          ],
          "impacts": [
            {
              "capecId": "CAPEC-115",
              "descriptions": [
                {
                  "lang": "en",
                  "value": "CAPEC-115 Authentication Bypass"
                }
              ]
            }
          ],
          "metrics": [
            {
              "cvssV3_1": {
                "attackComplexity": "LOW",
                "attackVector": "NETWORK",
                "availabilityImpact": "NONE",
                "baseScore": 9.1,
                "baseSeverity": "CRITICAL",
                "confidentialityImpact": "HIGH",
                "integrityImpact": "HIGH",
                "privilegesRequired": "NONE",
                "scope": "UNCHANGED",
                "userInteraction": "NONE",
                "vectorString": "CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:N",
                "version": "3.1"
              },
              "format": "CVSS",
              "scenarios": [
                {
                  "lang": "en",
                  "value": "GENERAL"
                }
              ]
            }
          ],
          "problemTypes": [
            {
              "descriptions": [
                {
                  "cweId": "CWE-287",
                  "description": "CWE-287 Improper Authentication",
                  "lang": "en",
                  "type": "CWE"
                }
              ]
            }
          ],
          "providerMetadata": {
            "dateUpdated": "2024-03-25T21:58:52.325Z",
            "orgId": "50d2cd11-d01a-48ed-9441-5bfce9d63b27",
            "shortName": "wolfSSL"
          },
          "references": [
            {
              "tags": [
                "patch"
              ],
              "url": "https://github.com/wolfSSL/wolfssh/pull/670"
            },
            {
              "tags": [
                "patch"
              ],
              "url": "https://github.com/wolfSSL/wolfssh/pull/671"
            },
            {
              "tags": [
                "vendor-advisory"
              ],
              "url": "https://www.wolfssl.com/docs/security-vulnerabilities/"
            }
          ],
          "solutions": [
            {
              "lang": "en",
              "supportingMedia": [
                {
                  "base64": false,
                  "type": "text/html",
                  "value": "\u003cspan style=\"background-color: transparent;\"\u003eThe fix for this issue is located in the following GitHub Pull Requests:\u003cbr\u003e\u003cul\u003e\u003cli\u003e\u003ca target=\"_blank\" rel=\"nofollow\" href=\"https://github.com/wolfSSL/wolfssh/pull/670\"\u003ehttps://github.com/wolfSSL/wolfssh/pull/670\u003c/a\u003e\u003cbr\u003e\u003c/li\u003e\u003cli\u003e\u003ca target=\"_blank\" rel=\"nofollow\" href=\"https://github.com/wolfSSL/wolfssh/pull/671\"\u003ehttps://github.com/wolfSSL/wolfssh/pull/671\u003c/a\u003e\u003cbr\u003e\u003c/li\u003e\u003c/ul\u003e\u003c/span\u003e"
                }
              ],
              "value": "The fix for this issue is located in the following GitHub Pull Requests:\n  *   https://github.com/wolfSSL/wolfssh/pull/670 \n\n  *   https://github.com/wolfSSL/wolfssh/pull/671 \n\n"
            }
          ],
          "source": {
            "discovery": "UNKNOWN"
          },
          "title": "User authentication bypass in wolfSSH server",
          "x_generator": {
            "engine": "Vulnogram 0.1.0-dev"
          }
        }
      },
      "cveMetadata": {
        "assignerOrgId": "50d2cd11-d01a-48ed-9441-5bfce9d63b27",
        "assignerShortName": "wolfSSL",
        "cveId": "CVE-2024-2873",
        "datePublished": "2024-03-25T21:58:52.325Z",
        "dateReserved": "2024-03-25T20:28:07.035Z",
        "dateUpdated": "2024-08-01T19:50:46.158Z",
        "state": "PUBLISHED"
      },
      "dataType": "CVE_RECORD",
      "dataVersion": "5.1"
    }