1
0
forked from sneak/secret

security: zero plaintext after copying to memguard in DecryptWithIdentity

The decrypted data from io.ReadAll was copied into a memguard
LockedBuffer but the original byte slice was never zeroed, leaving
plaintext in swappable, dumpable heap memory.
This commit is contained in:
clawbot 2026-02-08 12:04:38 -08:00
parent 128c53a11d
commit fd77a047f9

View File

@ -68,6 +68,11 @@ func DecryptWithIdentity(data []byte, identity age.Identity) (*memguard.LockedBu
// Create a secure buffer for the decrypted data
resultBuffer := memguard.NewBufferFromBytes(result)
// Zero out the original slice to prevent plaintext from lingering in unprotected memory
for i := range result {
result[i] = 0
}
return resultBuffer, nil
}