View Issue Details

IDProjectCategoryView StatusLast Update
0009288GNUnetutil librarypublic2024-10-29 19:56
Reporterfefe Assigned Toschanzen Due Date
PrioritynormalSeverityminorReproducibilityhave not tried
Status closedResolutionfixed 
Target Version0.22.2Fixed in Version0.22.2 
Summary0009288: GNUNET_hex2b: buffer overflow
DescriptionThis function looks highly dangerous:

  1525 size_t
  1526 GNUNET_hex2b (const char *src, void *dst, size_t dstlen, int invert)
  1527 {
  1528 const char *line = src;
  1529 const char *data = line;
  1530 uint8_t *buf = dst;
  1531 int off;
  1532 int read_byte;
  1533 int data_len = 0;
  1534
  1535 while (sscanf (data, " %02x%n", &read_byte, &off) == 1)
  1536 {
  1537 if (invert)
  1538 buf[dstlen - 1 - data_len++] = read_byte;
  1539 else
  1540 buf[data_len++] = read_byte;
  1541 data += off;
  1542 }
  1543 return data_len;
  1544 }

Note how dstlen is not used to limit how many decoded bytes are written.
TagsNo tags attached.

Activities

schanzen

2024-10-23 11:25

administrator   ~0023570

Fix committed to master branch.

schanzen

2024-10-29 19:56

administrator   ~0023633

Released

Issue History

Date ModifiedUsernameFieldChange
2024-10-22 12:06fefeNew Issue
2024-10-23 11:17schanzenAssigned To => schanzen
2024-10-23 11:17schanzenStatusnew => assigned
2024-10-23 11:19schanzenTarget Version => 0.22.2
2024-10-23 11:25schanzen
2024-10-23 11:25schanzenNote Added: 0023570
2024-10-23 11:25schanzenStatusassigned => resolved
2024-10-23 11:25schanzenResolutionopen => fixed
2024-10-24 09:54schanzenFixed in Version => 0.22.2
2024-10-29 19:56schanzenNote Added: 0023633
2024-10-29 19:56schanzenStatusresolved => closed