Skip to content
Heist/ feed
Back to feed
High

strongMan vulnerable to private credential recovery due to key and counter reuse

Type: advisorySources: OSV

strongMan is a management interface for strongSwan, an OpenSource IPsec-based VPN. When storing credentials in the database (private keys, EAP secrets), strongMan encrypts the corresponding database fields. So far it used AES in CTR mode with a global database key. Together with an initialization vector (IV), a key stream is generated to encrypt the data in the database fields. But because strongMan did not generate individual IVs, every database field was encrypted using the same key stream. An attacker that has access to the database can use this to recover the encrypted credentials. In particular, because certificates, which have to be considered public information, are also encrypted using the same mechanism, an attacker can directly recover a large chunk of the key stream, which allows them to decrypt basically all other secrets especially ECDSA private keys and EAP secrets, which are usually a lot shorter. Version 0.2.0 fixes the issue by switching to AES-GCM-SIV encryption with a random nonce and an individually derived encryption key, using HKDF, for each encrypted value. Database migrations are provided to automatically re-encrypt all credentials.

Products
Not specified
Affected versions
Not specified
Fixed versions
Not specified
CVEs
CVE-2026-25998
Confirmed fixed CVEs
Not specified
Updated in this feed
3 Nov 2026, 18:53 UTC · Revision 1

Source evidence

strongMan vulnerable to private credential recovery due to key and counter reuse

core-osv · Original source

Published 19 Feb 2026, 15:51 UTC

strongMan is a management interface for strongSwan, an OpenSource IPsec-based VPN. When storing credentials in the database (private keys, EAP secrets), strongMan encrypts the corresponding database fields. So far it used AES in CTR mode with a global database key. Together with an initialization vector (IV), a key stream is generated to encrypt the data in the database fields. But because strongMan did not generate individual IVs, every database field was encrypted using the same key stream. An attacker that has access to the database can use this to recover the encrypted credentials. In particular, because certificates, which have to be considered public information, are also encrypted using the same mechanism, an attacker can directly recover a large chunk of the key stream, which allows them to decrypt basically all other secrets especially ECDSA private keys and EAP secrets, which are usually a lot shorter. Version 0.2.0 fixes the issue by switching to AES-GCM-SIV encryption with a random nonce and an individually derived encryption key, using HKDF, for each encrypted value. Database migrations are provided to automatically re-encrypt all credentials.

osv:CVE-2026-25998
Complete source record
{
  "id": "f76cf10b203285c0e68d1e883604a7ef5fc6c26c3cd3db116784f518cb5c3e15",
  "url": "https://osv.dev/vulnerability/CVE-2026-25998",
  "method": "structured",
  "payload": {
    "kind": "advisory",
    "title": "strongMan vulnerable to private credential recovery due to key and counter reuse",
    "summary": "strongMan is a management interface for strongSwan, an OpenSource IPsec-based VPN. When storing credentials in the database (private keys, EAP secrets), strongMan encrypts the corresponding database fields. So far it used AES in CTR mode with a global database key. Together with an initialization vector (IV), a key stream is generated to encrypt the data in the database fields. But because strongMan did not generate individual IVs, every database field was encrypted using the same key stream. An attacker that has access to the database can use this to recover the encrypted credentials. In particular, because certificates, which have to be considered public information, are also encrypted using the same mechanism, an attacker can directly recover a large chunk of the key stream, which allows them to decrypt basically all other secrets especially ECDSA private keys and EAP secrets, which are usually a lot shorter. Version 0.2.0 fixes the issue by switching to AES-GCM-SIV encryption with a random nonce and an individually derived encryption key, using HKDF, for each encrypted value. Database migrations are provided to automatically re-encrypt all credentials.",
    "evidence": "osv:CVE-2026-25998",
    "products": [],
    "severity": "high",
    "structured": {
      "id": "CVE-2026-25998",
      "aliases": [
        "CVE-2026-25998",
        "GHSA-88w4-jv97-c8xr"
      ],
      "metrics": [
        {
          "type": "CVSS_V4",
          "score": "CVSS:4.0/AV:N/AC:L/AT:N/PR:N/UI:N/VC:H/VI:N/VA:N/SC:N/SI:N/SA:N"
        }
      ],
      "affected": [
        {
          "ranges": [
            {
              "repo": "https://github.com/strongswan/strongman",
              "type": "GIT",
              "events": [
                {
                  "introduced": "ae1581860c9741bcab3edcf4de023c21a0fd613b"
                },
                {
                  "fixed": "e6ba0ee136a76b406cc099485a5dea95a9792935"
                }
              ],
              "database_specific": {
                "extracted_events": [
                  {
                    "range": [
                      {
                        "introduced": "0"
                      },
                      {
                        "fixed": "0.2.0"
                      }
                    ],
                    "source": "AFFECTED_FIELD",
                    "strategy": "StringRangeExpression"
                  },
                  {
                    "cpe": "cpe:2.3:a:strongswan:strongman:0.1.0:*:*:*:*:python:*:*",
                    "range": [
                      {
                        "introduced": "0.1.0"
                      },
                      {
                        "last_affected": "0.1.0"
                      }
                    ],
                    "source": "CPE_STRING"
                  }
                ]
              }
            }
          ],
          "versions": [
            "0.1.0",
            "v0.1.0"
          ],
          "database_specific": {
            "source": "https://storage.googleapis.com/cve-osv-conversion/osv-output/CVE-2026-25998.json"
          }
        }
      ],
      "modified": "2026-10-28T02:30:31.481585263Z",
      "provider": "osv",
      "references": [
        "https://github.com/CVEProject/cvelistV5/tree/main/cves/2026/25xxx/CVE-2026-25998.json",
        "https://github.com/strongswan/strongMan/security/advisories/GHSA-88w4-jv97-c8xr",
        "https://nvd.nist.gov/vuln/detail/CVE-2026-25998"
      ],
      "provider_metadata": {
        "cwe_ids": [
          "CWE-1204",
          "CWE-323"
        ],
        "cna_assigner": "GitHub_M",
        "osv_generated_from": "https://github.com/CVEProject/cvelistV5/tree/main/cves/2026/25xxx/CVE-2026-25998.json"
      }
    },
    "related_cves": [
      {
        "value": "CVE-2026-25998",
        "evidence": "/id"
      }
    ],
    "security_relevant": true,
    "severity_evidence": "/severity/0/score"
  },
  "source_id": "core-osv",
  "document_id": 498562,
  "published_at": "2026-02-19T15:51:35.349+00:00"
}