View Issue Details

IDProjectCategoryView StatusLast Update
0008102Talerexchangepublic2024-03-07 19:47
Reporterfefe Assigned ToChristian Grothoff Resolution deadline
ImplementerReviewer 
Release signed byDeployed by 
VerifierCommunicator 
Data protection authority notification requiredNo  
CSIRT notification requiredNo  
Estimated effort (hours)Actual effort (hours)0 
Fast-trackNo
Work packagenone
PrioritynormalSeveritymajorReproducibilityhave not tried
Status closedResolutionfixed 
Product Versiongit (master) 
Target Version0.9.4Fixed in Version0.9.4 
Summary0008102: append_signature: buffer overflow
Description 213 static void
 214 append_signature (struct SignatureContext *sig_ctx,
 215 unsigned int group_offset,
 216 unsigned int offset,
 217 const struct TALER_MasterSignatureP *master_sig)
 218 {
 219 struct SignatureElement *element;
 220 unsigned int new_size;
 221
 222 if (sig_ctx->elements_pos == sig_ctx->elements_size)
 223 {
 224 if (0 == sig_ctx->elements_size)
 225 new_size = 1024;
 226 else
 227 new_size = sig_ctx->elements_size;
 228 GNUNET_array_grow (sig_ctx->elements,
 229 sig_ctx->elements_size,
 230 new_size);
 231 }

We enter the if statement if the array is full and we need to reallocate. But then we don't grow the size in line 227.
The case probably never happened, 1024 signatures appears to be enough for the common case. But if someone needs more signatures, this array_grow becomes a no-op and we write out of bounds.

 232 element = &sig_ctx->elements[sig_ctx->elements_pos++];
TagsNo tags attached.

Required notifications

Address or linkRemarkAdded byNotifiedActions

Relationships

child of 0008112 implementingoec Merchant security review 

Activities

Christian Grothoff

2024-01-22 16:02

manager   ~0020958

Fixed in 3806b43d..d7962e01

Issue History

Date ModifiedUsernameFieldChange
2024-01-18 12:15fefeNew Issue
2024-01-18 12:15fefeStatusnew => assigned
2024-01-18 12:15fefeAssigned To => Christian Grothoff
2024-01-18 12:23Christian GrothoffStatusassigned => informing
2024-01-18 12:23Christian GrothoffResolutionopen => fixed
2024-01-18 12:23Christian GrothoffFixed in Version => 0.9.4
2024-01-18 12:23Christian GrothoffSeverityminor => major
2024-01-18 12:23Christian GrothoffProduct Version => git (master)
2024-01-18 12:23Christian GrothoffTarget Version => 0.9.4
2024-01-18 22:31Christian GrothoffRelationship addedchild of 0008112
2024-01-22 16:02Christian GrothoffStatusinforming => assigned
2024-01-22 16:02Christian GrothoffNote Added: 0020958
2024-01-22 16:03Christian GrothoffStatusassigned => informing
2024-03-07 19:47Christian GrothoffStatusinforming => closed