cipher-kdf.c: balloon_close: missing factor in wipememory() call

Bert van der Weerd via Gcrypt-devel <[email protected]> Thu, 16 Apr 2026 22:14:59 +0000
Newsgroups gmane.comp.encryption.gpg.libgcrypt.devel
Message-ID <[email protected]>
--b1=_v1Dm0eFLfJQ94gqxbHKdIjrELSzBaw9Wm75gUl4UkY
Content-Type: text/plain; charset=utf-8
Content-Transfer-Encoding: quoted-printable

Hi all,

Okay, next issue, this one should be straightforward (one-liner):

A forgotten (... * b->blklen) factor in balloon_close causes=20
wipememory() to wipe only a tiny fraction of the balloon working memory=20
before freeing it.

--- - wipememory (b->block, parallelism * b->n_blocks); + wipememory=20
(b->block, parallelism * b->n_blocks * b->blklen); ---

The allocation is in: balloon_open (line 1145):

block =3D xtrycalloc (parallelism * b->n_blocks, b->blklen);

This block contains intermediate hash values of the key material, but=20
it's a wipe after the algo has run, so it's not critical, probably.

Thanks for your time, --Bert


--b1=_v1Dm0eFLfJQ94gqxbHKdIjrELSzBaw9Wm75gUl4UkY
Content-Type: text/x-patch; charset=UTF-8; name=balloon-close-wipememory.patch
Content-Transfer-Encoding: base64
Content-Disposition: attachment; filename=balloon-close-wipememory.patch

ZGlmZiAtLWdpdCBhL2NpcGhlci9rZGYuYyBiL2NpcGhlci9rZGYuYwppbmRleCAxNmNlYzRlNC4u
NjZlZmY2YzYgMTAwNjQ0Ci0tLSBhL2NpcGhlci9rZGYuYworKysgYi9jaXBoZXIva2RmLmMKQEAg
LTE0MTYsNyArMTQxNiw3IEBAIGJhbGxvb25fY2xvc2UgKGJhbGxvb25fY3R4X3QgYikKIAogICBp
ZiAoYi0+YmxvY2spCiAgICAgewotICAgICAgd2lwZW1lbW9yeSAoYi0+YmxvY2ssIHBhcmFsbGVs
aXNtICogYi0+bl9ibG9ja3MpOworICAgICAgd2lwZW1lbW9yeSAoYi0+YmxvY2ssIHBhcmFsbGVs
aXNtICogYi0+bl9ibG9ja3MgKiBiLT5ibGtsZW4pOwogICAgICAgeGZyZWUgKGItPmJsb2NrKTsK
ICAgICB9CiAK

--b1=_v1Dm0eFLfJQ94gqxbHKdIjrELSzBaw9Wm75gUl4UkY
Content-Type: application/pgp-keys; name=OpenPGP_0x1B93BFCB9DEDFAA0.asc
Content-Transfer-Encoding: base64
Content-Disposition: attachment; filename=OpenPGP_0x1B93BFCB9DEDFAA0.asc

LS0tLS1CRUdJTiBQR1AgUFVCTElDIEtFWSBCTE9DSy0tLS0tDQoNCnhzRk5CR1lTZk1rQkVBQzVE
UDdSVk5McWovWDlQYjB3dEpNcWxidGFpRG1QcUpZZms5TTFVMnJHWGJiZ21ZV2INCmRXR3NTbldM
UktmVDU4OVNuQ3YwaklVejFBMHNYZTYyUlhTdG5GRm0yOWFPOVdDL3BXSmEzbXpTYlFEaU55QU8N
CmxhV0MrYlNyczZjNUtqak55bjhWa040MUVaTVp1ZUFpcitIcVVuYTNiWVVieWQrVE9ackMxenk2
VDZBUEpwZXUNCnAxaE5TblQwQ3VjRjZBNXEwczk2VTBNZ2hYMjM2ZlBURTY3YUZuWmpXVFcrVXh0
b2F0Rmlwb0pmZFJ4TWtWTjINCnJzRWM4c1BBa016OVVTSGJYL2tOZGdVZzhPbVJ2QnE0ZUN6Njcz
endhV3U1Z3pLck54U0VGQjNkQWkybUkxUXcNCi9ObUhOdzN6enNMd21EVFdGMmxiZDJCQVRKRzMy
bmV1SlNpdFRQTVVzUVVpMXNFYkFjZXFnd3VNRjBmZVlKa2wNCnhQYmNJWEJDbEhTVXFiKytWbUhk
WlhQS1Q4dXBzTUlrTXk1TjBGZUZFVTN2MHFxMSt4cHd5clRuMTQ2RDlNWUsNClF5aFJYYllnWlg4
bFJDU2RaL3BRaU52WnJRR0lMOWx2VG9RNWV3Y3l6UjNHYzI4Ny9sWGk4ZGlwNXNPZ1FNWlQNCm5z
ZEZJT01vUjRUaklNWVB6VExSVHVySVVoTzV5Z1dFRkdFZjkwbjJSVUs5TEJXTmlpRzYvZmwyWXg1
NWptUk4NCkVNczdId3VrNGo2K1lFaTBSWUtRT0F2bWF5MDYva04rY3NocHZmdVZNNzJTWlJNQm1t
Q0Z4MmFjajk3TzdFd08NCkhVL1FnRWgrODQ5ZGpaOGJCNEN6UHlXaGtmOG9oT0VUK2ZhWS9zeUdn
MU9hNmdEVk1tSHFNYzdiK1FBUkFRQUINCnpTZENaWEowSUhaaGJpQmtaWElnVjJWbGNtUWdQR0ps
Y25SQWRHVmhiWE53YVdONUxtNWxkRDdDd1pFRUV3RUkNCkFEc1dJUVFSeW1EQ1RrZjhUYWxIdVhz
Yms3L0xuZTM2b0FVQ1poSjh5UUliQXdVTENRZ0hBZ0lpQWdZVkNna0kNCkN3SUVGZ0lEQVFJZUJ3
SVhnQUFLQ1JBYms3L0xuZTM2b0dRdkVBQ1VWODB2em92RFdyaHJsZ1JFZEtRNE9PNzYNCjA2djhF
VXQydUZsT3FZZldQd2UzUUxia3pEODVPclpjKzJtQmdTdVR5aEdhSWJOaEsxTk1idzk5TVRlbmhz
ejINClE1Tm9uUSt5UHNWSkJZVG5KRGxSczVicmNPRkpRTFpERCtJN0g1TnhER05nVW9DSm93TG9p
Q3gzdlVXYXRqVFoNCndKckdJd2FQUUNleC92d3dPdHR4eDRnUzlSTGNjTzMyaFFLdlZwbTVzNm5G
em9SWHZZWEEwOWZQa2xtRFV6ckgNCllEdXhhM0ZmdVdvMW1rOFpWWTVMbzQvR0paSXkzRzBrUVRU
RXNPSjBuU1lzZGdzNTk1aVM4MG0xOUlsOHNHcTYNCjdNNGxNN3BKellQL0NxRGVjbjg1dW5rSytH
ZjUxSCtFZWlSZnZpWXd5enRFRjhqNE9nODYvbzFlaUQ5MUFOTEQNCjYrOTkzTVhZRGVkdy85ZlFX
OGVSNjBnRXByWlcrV0FCSTRhTFRXQnZkK0VaVVhGdWdkVmhsWWhRL3ZidWVtczENCjY5enAvM1ZH
YjljUExHWjR0Qm5pUk9IaGV3WTZSTFZuNi9tc3gyMkpnb3BVSlIrVGFmeFBMeFlYL3BKdkwzb2YN
ClZNdlc4RXlQT2FyaGc3VGdaMWNvc3ZVRUw3NFdqQ2h0cjAyZlBscVdQRFRTU1hKOVJBTGhqRlBu
L1JINS9FYzcNClp1Njl4NUZ5TTVGa0M1WjdjVzRqbXBaeWkzbnBSbVUweFVmM2lwV3FHNHhTQ05v
ejJYR0ZOVHc0TStDRmlTZU8NCisvZ0pwcXJpVklRS2ZyMzVNN1hHbG1TQlF6eWlCL0tPSjYrSlN4
Z1ZJOWcwN2dJdjRaTXFnTWQveXQ0N1I0NWQNCm4xenc4R0xndm92ZVhQQmZTYzdCVFFSbUVuekpB
UkFBdnEwNnB5SGc2ajllUjZZUEZqU3lUdGZlV09ZQll5dDENCkswLzYzMU5mVEU4QkgxY1FpQi9U
cTBTRkp6OXZsclZtTTdkOVJYUUtNZHBYWVVlUDY5Z0Uva1E4S2tZWldmVEwNClJCWTVOWFUxY1pq
UW1mN0JQQ0RUVW42ZjRwMlp2L2hRczNHSEpadkg4eFU5VTcxWkFWcTF6SzI2eHdZQkdVMlINCmlx
d3dBUjVRMEl2UWF5SVI4K3pzN3NwVXFzZGhUU3hBaU1lNWo0dVV3VjlMYkVDOVZOdlZjVVBvQ3hj
UVhtaHINCkJUT01FWHNUT1FDUXlyRHlIWm5qOWlxZXBob3M0NUlRQzNPUWg0ZThWdHdncGpqeHBh
MFZuWFR0VkpRUkpJZm4NCmtRL2oweXpKRTFhUVpkRDNHdEJWc1Q1aGFGRDdKR2dMRU5YTXk4MkNn
YzMrV2oxYUZTSG1QcGtEdzg0QUU4V2sNCk5nMXVMTHN0R0puS0NBN3BrbHVHbjMzc1BxYW4rUjNl
dzFDNnNDZ0JoOW1CYThiWmdxVGdzMnovRkgrODFuY2QNCmdKZFhGV0UwUUJoeEtUbEsxenowazll
dHVIV3h3M3Vya1FkOWp2dGZUVjIxenltKzZFRUNTMytkTHBDNzBJR2cNCm9YRjZ5Mk5hc2hFNit1
NWNWV0Z2WkJiN2MwVk5xL29JdXFZbHJQekpxYTUwT2M5VlJPbzJXN3VqbW9IWXhEWmQNCjh6T2Ji
YmNjTVhsU2tjeXFXMGlXNkk2aTRjZGpmWDRZb3VWenM4ajJqSExjdDFsRk5MaTRYaCt4eHJURXdq
T1UNClkwMGlvdDk3OVZ6eG84b3Zsc3J0bk55eERvUEhBQi9tbFh6d0tFUjk4aTBUWWpzR1A4bHR3
K0tRUHlaQVVTNUYNCkp6SlFjcngvUHdrQUVRRUFBY0xCZGdRWUFRZ0FJQlloQkJIS1lNSk9SL3hO
cVVlNWV4dVR2OHVkN2ZxZ0JRSm0NCkVuekpBaHNnQUFvSkVCdVR2OHVkN2ZxZzVCc1AvMmdPWjNq
N21rSlNVLzFFRm16MkFwclVoeHc4OG4yYnVXK04NCm82Y0czVUw2K2lzWndFRS9GeHhrTXJtbjFO
bTdEeTFlYVVDTS8rT053eEVPYzQ4cmlvUmxUNGxzeFo3VjZOcUoNCi93ZTZWbVhIZUJpeUZlSHVS
djFtU2o5aXhUQUJtR2VaZWtNR0tuaEp1WWVWWVFSbmpQNlQ0KzhUSzBWclpMM0QNCmRudzQ0bGV5
bEROTUMxaWdXeEhtbzQ3ZzdFc3NBSXMwMG9oNlA1d3ZYeWhHSEJUckhYM3BxUUZVd0xmdlB5TFQN
CmNZZEp0M05CdklyZGxNbStPaTZhbElSTm5DeVo1WWY2c3VFeHBUbTIyS2RXMStsOUFCaW5aaWEy
R3lXeVpRNXgNCi9ldVRqME1POGZPYnpWK09NR0dNYWNpZi9YaDR6VDJRd0dQakwwRklHYXpOZ1ZQ
Z3o3U3VpYU05QUMvNzBCbHANCk5wVDhyeHVrcEcvWjUrVmYwYmhHa01PSnhVUXBwdzJxRWlLbnpB
eFdBYTVGMVBtaTZTSTB5d0s0aXkvZkdCMkgNCjdZcEh4OXdFRzZTa2R5eTJlVzZFNFZSM3cwU2FF
TVJHVUl6ZWFHM0pleHRPYWpjOWQrYzVTQTZaMmNjRnVxOGQNClRmckYyOUc5MnU5WkpOQ2Q4aWdy
RWtiWEFjKy9sTGEzSnhyNlp3S0FjYWhXUEJYYkRHSnEzRzNXSUl1TXAxZncNCkw0RFFiYnVReDUz
TjJOUGxQS0FiNzU4RWlESnNHYzV2Z1FSR3RzZjJmYndLbUdKdnIrMkV6MUIzZk5lYWpoem0NCjJH
T3lJaFdzVjEwTXM4MVNpME1SNlgreDVqUzQ0YmF1dzZZdmFRcDFQa1loa3ZabTZlRVlvalRoeEl0
TlQySEQNClVYNlpzbWVCenNGTkJHWVNmTWtCRUFER1BwZUtqNVFYOW1pejc0bDh4NTJ5WENpa0Uv
bTcxS3lXRlZMQnNoOG8NCkRWVDlXdWs1TjdTUVpnakRnYXcveHBCbHNaeitGdUF3SGFyQnJ2MzdD
K2I3YkVVUDJUMVZVMlhQemNsdXA2SlcNCklNUVk3eEl2REwwTUJtRzRjZk9JemphV2NaTDVsTVNz
MW9sUXNsbFR0dGowM21mWkRIZ0oxRUhyWHF1YzhiMngNCnlLa1RoeW9MVGJYd3RhMEN5QVhGWjlL
endYQ0ozdU43dWpqaTViRlVxdnN6eG0vR01kUWZOMW1SL2IvZTNoSVMNCndmVHVUaXlFYm9MNis0
ZWFTamlMaHY4Vy9NVWx2b0swNGdHazc3bUFiMXBXU0hCMU1lSFB1QUYrUTdoQi8rSTANCmViMHN3
eTBsNlltNWE0Tk9KZU9scy9UcnBtNFN5SVkyd2NrVjhMczBrS3l2YjZIM0tUdXl1aG5BeGlaUS8z
YS8NCk5QR29vRS9zWm9yV2pkQURaTk5rNzlEK254cmNtVnVDbFVnUVR6ZzlpYm5vOVM1V0NQMFFO
ZEgwRElXM1dDTGINCkcxK3lhSEw1bmszVHFvUSt3VlFmUG5Ma3ZXR1pHTFVZd0pTUFNqZjh5SDlP
anpFYUhpcmFwQ3JwWllyWUU3Ty8NCnROdXRocTdJZjE4cEhldEpDUHJaaG40c0ozakgyV0lsRUJQ
QWR1RTdUNkJGNVd1S21BRlRyNE01d0w2TURpaloNCmltaTByTTh2Sk5pRldrQTBWRXJtQ2RpVzhi
Q0Fjekd4UTIyazMzMXEvN2c1dGhmSUlkNS9CaC9DYUIrMHNZY1ANCk5sN1hUWm1BZ2R0ckt3aHpX
UUJhM0RQZHVzM0tzSFZIY3cwQzNXRE9kTm82YXR1OER4ZGNMSzg1dUtCaXMyZXoNCnVRQVJBUUFC
d3NGMkJCZ0JDQUFnRmlFRUVjcGd3azVIL0UycFI3bDdHNU8veTUzdCtxQUZBbVlTZk1rQ0d3d0EN
CkNna1FHNU8veTUzdCtxQ0htZy85R2o2cnVidDcyemM1MnM4Z2JIcWNzdnFLZktNYk1DT3lSQVFW
ZHZDM1g2WDMNCmxwMy9lZmxzaStEOGFFbHJuTGw5ZmVtS2Z0RVY0T2haQUkveDVTbEkrc1hGTG96
N0pnM1NsRFE4MlYrT1RXVTcNCmVybEhma1ZoNXFXem9jRHJ2NGIremFHenFObzdPUjMxZFZ5NDU1
aHJORmgvaktETmZGalJqSHhLcVo0ajNXcTANCnZHdkxQMEpTYTRKZlh6c3BPT1ZmSkhGYm1nMVVm
TFJVd2VVT3FXV3FBdlVQWVQ3c0JhNHh2eDN0bE1FTDI4enANCnpkTXAwMEdUTTlJaFhPK0FjTnph
VGRXakdpcU5sNGd2aHVoVjhuNTBYVlZpRStKMEJXN0xEQ2J5b2FMVXdBbmYNClJOQVVhc0lzWjRW
Skc1SEdhSGhEWnZjY1EzY3VQV2FSV0hWaWJnc0tZWFlSQ2NwT25CRkhxUW1DbDhWNGtBOEcNCm85
UnFkVFN6QkxZamQxTnJzZ3I1M0pFWG5oc0tkanBTbHFYOVJRdUJEd25ORk5pRkFwZlFYYzVmT2E4
Z3FoOE8NCll6eWdzUzU1a2RyK2dZa09yU1JRYU5EbFBZRmxQKytMc0JJdmNjRXNzSnY2ell4U3RL
OTFiSVI4TFlNcDlRU00NCjdCQkxrcWZPZGhKZnhOTFhtbzhwWVI0VG9TZTFCUEY5Uzc4b04vLy90
NUExR0FpY3lleDBvVXNkNmljM2laYlUNCkRKOW5KVUo2YzYzSW5YbUtOVTRCMU9kbklwY3l2RnZz
RTZZWGFFOXBiRExFQUh1eDRoRFhXeVFIeVY1d25TVzINClRRTzVvREd3KzBONDVXblp6V09MdUM2
WWllNmZpeEZ1NktTVU1mVjJVTG16UndZNW1HNFY4RlZSdHJRS2VuTT0NCj1DUUhZDQotLS0tLUVO
RCBQR1AgUFVCTElDIEtFWSBCTE9DSy0tLS0tDQo=

--b1=_v1Dm0eFLfJQ94gqxbHKdIjrELSzBaw9Wm75gUl4UkY
Content-Type: application/pgp-signature; name=OpenPGP_signature.asc
Content-Transfer-Encoding: base64
Content-Disposition: attachment; filename=OpenPGP_signature.asc

LS0tLS1CRUdJTiBQR1AgU0lHTkFUVVJFLS0tLS0NCg0KaVFJekJBRUJDZ0FkRmlFRUVjcGd3azVI
L0UycFI3bDdHNU8veTUzdCtxQUZBbW5oWDBvQUNna1FHNU8veTUzdA0KK3FEQnNRLy9iTy9DeWxu
S0tnMmZoYng0NGdoZDhkR2dEL0dkRkpGL20ycmlyRmU1YkE4d0xkUHphZnhLN2RyTw0KOEIrK0lj
ckM1QkUrMTBBbTI1M2RLc3Z1aHUyR0RndFpaS3ZqU3ByaFBQWnVjQitmNlQ2UldKbEdsdDFrMHRE
Vw0KWWp1b1pJY1loakd4N25jbWp4ejVEblFJcFBaTTdaZjdrS1VjZ2J0clhsczVwZzFHQjJjSTFu
TkVDU0Jwd3N0cA0KbHNFRmZvNGR3RW1FZUVnWXhLM3lqVXJVSWNPenNRU0tjMXZFSzBhWkUxN1Za
WUUvYlcxdVlVeGZya29jTUNiSg0KaEw0UDhvclh2UFlpczNyam16bXJYN2VRdjRqcVM5d24xSll5
OXIrRkszdVd0eEdPc1hQalpSWFl3OEliM1pFbA0KcFZPSDQvQ2o1cTF4a0VKNFc2d21kUWI3ajA5
L0ZncndjenJGTDBnajZTbW82SEJ3S2Q4ajFCeTl2YytEQ0Z3Vg0KV2RSTzZleHlhaFA3OE83emp0
Z0RKVnluNnlodEZPbFNSdlZsZHRVMGhzS3JlZW1QMGJudnFLNGpKSWNHZUFibQ0KTUlMY1U3VWtU
clFWSjVGMjltNEE1Vk9HVHhpVzQ5NXZDRTJkVVc3ZE5nV0tTTUtUNWVtU0N0WUpNS3AxYTNGbw0K
RmU1amhSbDNjdWp5clZ5QnovaWVkRXZ2RTdMYlhseWNPMzJFZUd1dWQ3UHFDM0RFdUlrY293a3ln
MEpFWFB4RA0KeURucXkrSzBQWE5tVVN1b3R1ZnhyU0EyTU41bHhHbzNCZHIzZTJMNlBOQ2VFdCtG
R1ZHUEhyYncybVE1MmVTbA0KdmJpYmFTMWVrWUFFQ2tEVStObkVyYkVYSnNVZEJYVXBzUWtJZWVs
Q3Fscy8xNE9XVXNvPQ0KPStFR0wNCi0tLS0tRU5EIFBHUCBTSUdOQVRVUkUtLS0tLQ0K

--b1=_v1Dm0eFLfJQ94gqxbHKdIjrELSzBaw9Wm75gUl4UkY
Content-Type: text/plain; charset="us-ascii"
MIME-Version: 1.0
Content-Transfer-Encoding: 7bit
Content-Disposition: inline

_______________________________________________
Gcrypt-devel mailing list
[email protected]
https://lists.gnupg.org/mailman/listinfo/gcrypt-devel

--b1=_v1Dm0eFLfJQ94gqxbHKdIjrELSzBaw9Wm75gUl4UkY--