Connector/C Out-of-bounds read in `unpack_fields()` from short metadata field
该报告还没有中文解读。
原文摘录
摘自原文(4113 字符中的一小部分)
`unpack_fields()` in `libmariadb/mariadb_lib.c` parses 12 bytes of fixed-header metadata (charsetnr, length, type, flags, decimals) from each column descriptor without checking that the field data is present or long enough. A malicious server can send a truncated metadata field (0-11 bytes instead …
原文中的代码
p= (char *)row->data[i]; /* filler */ field->charsetnr= uint2korr(p); p+= 2; field->length= (uint) uint4korr(p); p+= 4; field->type= (enum enum_field_types)uint1korr(p); p++; field->flags= uint2korr(p); p+= 2; field->decimals= (uint) p[0]; p++; /* filler */ p+= 2;
默认不展示报告全文。以上为简短摘录,完整复现过程请阅读原文。版权归研究员与 MariaDB 所有。
时间线
- 报告提交
- 公开披露
阅读 HackerOne 原文 ↗作者 @mschorm · 版权归作者与 MariaDB 所有