When a VPN password turns up in a paste site, the useful first question is what that account was allowed to authorize, not how strong the cipher was. Those are separate problems with separate evidence, and merging them produces both panic and false comfort. A password can open a tunnel, enrol a device or unlock a portal, while the keys protecting traffic during a session are derived elsewhere and never handed out with the login. Write down what leaked before deciding which of the two problems you have.

Write down what was actually exposed

Four different incidents get reported as one. A password typed into a phishing page, a device key copied from a filesystem, a shared tunnel secret published inside a configuration bundle and a running endpoint whose memory was captured are four distinct exposures. Each supports a different answer about what happens next, and the containment steps diverge at once.

Ask for the artefact rather than the description: a filename, a configuration line, a screenshot with its header, or the exact sentence in the report. Detail degrades every time an incident is retold.

Inventory the authority the account carries

Take the account and list what admission to it permits. Destinations, protocols and ports come first, then the operations those destinations allow, then the separate identities still standing between the tunnel and the data. A file server that asks for its own authentication is not opened by tunnel admission, and that is a fact to verify rather than a reason to relax. The same words, VPN credentials, can describe a personal internet exit and an employee account that reaches a document system, which is why the inventory belongs per account.

Then list the account's other surfaces. When the same identity signs into a service portal, find out what the portal allows: reading account data, downloading profiles, registering another device, or changing access. Neither assume those functions exist nor assume they are absent; read the deployed configuration and the product's documented behaviour.

Terminate the session, not only the password

Changing a password and ending every authorization are different actions on most platforms, and the gap between them is where an intruder keeps working. Identify the certificate or device credential behind the session, revoke it, and confirm that the server actually consults the revocation data.

With an Easy-RSA style CA the sequence is short, and the last step is the one that gets skipped.

openssl x509 -in vpn-client.crt -noout -serial -subject -dates
./easyrsa revoke vpn-client
./easyrsa gen-crl

The server has to load that list through its revocation option before the change means anything, and a session already established may survive until it renegotiates. End it explicitly if the product exposes that control, and record what you ended, when, and for which identity.

Traffic keys are a separate investigation

TLS 1.3 derives record-protection keys from handshake secrets, and with an ephemeral key exchange those secrets exist only for that session and cannot be recovered from the server's long-term private key. The TLS specification treats record protection as a cryptographic mechanism rather than a consequence of an account password staying confidential. That is why a stolen login is not proof that previously captured packets became readable, and it is also not a guarantee of the opposite, since the protocol version, the handshake mode and the material actually exposed decide the answer.

A bundle containing a private key or a static shared secret moves the case into the other category. So does a compromised endpoint, where readable application data and live session material may exist no matter how carefully the tunnel itself was keyed.

Contain by material, then verify what happened

For a password-only exposure the work is credential rotation, session termination, portal review and a check for the same password on other systems. For key material it also includes replacing the key, reissuing certificates and reviewing everything that key protected, which is a considerably longer list.

Then establish the evidence boundary before rotation overwrites the trail. A tunnel log entry proves admission, an application log entry proves an application login, and neither proves the other.

journalctl -u openvpn-server@server --since "2026-11-01" --no-pager

Keep the credential itself out of the incident report. The report needs the account, the time range and the evidence path, not the secret that started the investigation.

Winndannde jowitiiɗe heen