Skip to content

Commit 0474bad

Browse files
committed
fix(posixage): zero sensitive byte slices after use
Clear decryption key material and plaintext secret bytes immediately after use via defer clear(), so they don't linger in the heap longer than necessary. Signed-off-by: Alano Terblanche <18033717+Benehiko@users.noreply.github.com>
1 parent 0e3df52 commit 0474bad

1 file changed

Lines changed: 3 additions & 0 deletions

File tree

store/posixage/store.go

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -138,6 +138,7 @@ func (f *fileStore[T]) decryptSecret(ctx context.Context, encryptedSecrets []sec
138138
if err != nil {
139139
return nil, err
140140
}
141+
defer clear(decryptionKey)
141142

142143
identity, err := secretfile.GetIdentity(keyType, string(decryptionKey))
143144
if err != nil {
@@ -214,6 +215,7 @@ func (f *fileStore[T]) Filter(ctx context.Context, pattern store.Pattern) (map[s
214215
if err != nil {
215216
return err
216217
}
218+
defer clear(decryptedSecret)
217219

218220
secret := f.factory(ctx, id)
219221
if err := secret.SetMetadata(metadata); err != nil {
@@ -254,6 +256,7 @@ func (f *fileStore[T]) Get(ctx context.Context, id store.ID) (store.Secret, erro
254256
if err != nil {
255257
return nil, err
256258
}
259+
defer clear(decryptedSecret)
257260

258261
secret := f.factory(ctx, id)
259262
if err := secret.SetMetadata(metadata); err != nil {

0 commit comments

Comments
 (0)