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:
parent
128c53a11d
commit
fd77a047f9
@ -68,6 +68,11 @@ func DecryptWithIdentity(data []byte, identity age.Identity) (*memguard.LockedBu
|
|||||||
// Create a secure buffer for the decrypted data
|
// Create a secure buffer for the decrypted data
|
||||||
resultBuffer := memguard.NewBufferFromBytes(result)
|
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
|
return resultBuffer, nil
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user