Activity for ezXML

  • Layne Layne posted a comment on ticket #29

    is this same algorithm in delta executor?

  • y4mrnie y4mrnie created ticket #29

    Out-of-bounds read in ezxml_decode() leading to heap corruption

  • Egbert Eich Egbert Eich posted a comment on ticket #20

    For me, this issue is resolved by the fix for bug 26. Check my comment there.

  • Egbert Eich Egbert Eich posted a comment on ticket #16

    For me, this issue is resolved by the fix for bug 26. Check my comment there.

  • Egbert Eich Egbert Eich posted a comment on ticket #26

    The proposed patch also resolves the issues reported in bug 16 and bug 20. This exposes a general weakness of this parser: it assumes that the XML passed is well formed to a certain extent and doesn't have thorough checking. strcspn() (and strspn()) are used in many more places throughout the code and exhibit the same problem: if the requested condition cannot be met anywhere in the string, these function stop at the /0 terminating the string. This condition is never checked and acted upon as this...

  • Egbert Eich Egbert Eich modified a comment on ticket #22

    The proposed patch addresses the issue demonstrated by the attached test case. All said in this comment applies.

  • Egbert Eich Egbert Eich posted a comment on ticket #23

    The proposed patch addresses the issue demonstrated by the attached test case. All said in this comment applies.

  • Egbert Eich Egbert Eich posted a comment on ticket #22

    The proposed patch addresses the demonstrated by the attached test case. All said in this comment applies.

  • Egbert Eich Egbert Eich posted a comment on ticket #21

    This bug, just like bug 22 and bug 23 takes advantage of the fact, that ezxml assumes that (re)allocation of memory will always succeed. There are many more cases where this can be exploited. It seems that this project was chosen as a test case for a tool written for the purpose of testing whether software handles (re)allocation failures properly. The issue demonstrated by the attached test case can be mitigated by the attached patch. This begs the question how useful this patch is as it only addresses...

  • Egbert Eich Egbert Eich posted a comment on ticket #19

    This segfault arises by not properly verifying if there is still data left to read after normalizing line endings. The proposed patch addresses this.

  • Egbert Eich Egbert Eich posted a comment on ticket #18

    The issue is due to bogus input data where an entity reference does not end in a ';'. The proposed patch addresses this.

  • Egbert Eich Egbert Eich posted a comment on ticket #28

    The proposed patch is incorrect: the memove() destination (s + c) does not have to contain valid data. The calculation performed seems to ensure that the move will fit into the bounds of the memory (re)allocated. The patch causes issues with perfectly valid XML. Also, performing an exit(-1) when the test condition fails would be the wrong way to handle an error condition anyway. In my tests the issue demonstrated by the test case was resolved by the fix for CVE-2019-20006 in bug 15.

  • Egbert Eich Egbert Eich posted a comment on ticket #17

    This issue is resolved by the patch propose in bug 15.

  • Egbert Eich Egbert Eich posted a comment on ticket #15

    The error occurs due to a bogus character reference that cannot be encoded as UTF-8. The proposed patch checks whether the character can be encoded in 36 bits (the maximum value that can be encoded using the UTF-8 encoding - note: the standard only uses 21 bits). This fix also resolves CVE-2019-20202 (bug 17) as well as CVE-2021-31598 (bug 28). Note: The solution as proposed in bug 28 is incorrect. It causes valid XML data to be rejected as well.

  • Egbert Eich Egbert Eich posted a comment on ticket #13

    Attached a proposed fix: Check if ezxml_str2utf8() has succeeded with performing a conversion and return with an error if not. This is different for the case that no conversion is required in that 's' remains untouched in that case.

  • rc0r rc0r posted a comment on ticket #26

    Please do not apply the originally proposed patch CVE-2021-31229-OOBW-000.patch as it calls ezxml_err() with a potentially corrupt t parameter leading to another crash (that does not occur without the patch applied). To avoid this newly introduced issue the offending call to ezxml_err() was changed to not include the potentially corrupt t: --- ezxml.c 2006-06-08 04:33:38.000000000 +0200 +++ ezxml-fixed.c 2021-04-15 15:40:38.054755080 +0200 @@ -320,6 +320,7 @@ { char q, *c, *t, *n = NULL, *v, **ent,...

  • rc0r rc0r created ticket #28

    Out-of-bounds write in ezxml_decode() leading to heap corruption

  • rc0r rc0r created ticket #27

    Out-of-bounds read/write in ezxml_parse_str() in ezxml.c:586/587

  • rc0r rc0r created ticket #26

    Out-of-bounds write in ezxml_internal_dtd()

  • rc0r rc0r created ticket #25

    Null pointer dereference in ezxml_internal_dtd()

  • fstark fstark created ticket #24

    Out-of-bounds write caused by Integer Overflow in ezxml_parse_str (ezxml.c:481)

  • CVE Reporting CVE Reporting created ticket #23

    Out-of-bounds write caused by incorrect error handling of malloc in ezxml_new (ezxml.c:750)

  • CVE Reporting CVE Reporting created ticket #22

    Out-of-bounds write caused by incorrect error handling of malloc in ezxml_new (ezxml.c:843)

  • CVE Reporting CVE Reporting created ticket #21

    Out-of-bounds write caused by incorrect error handling of malloc in ezxml_new (ezxml.c:838)

  • CVE Reporting CVE Reporting created ticket #20

    Stack overflow (uncontrolled recursion) - ezxml_ent_ok

  • CVE Reporting CVE Reporting created ticket #19

    Heap buffer overread (ezxml_decode:163)

  • CVE Reporting CVE Reporting created ticket #18

    NULL pointer defererence (ezxml_decode)

  • CVE Reporting CVE Reporting created ticket #17

    Using realloc on not allocated memory block (ezxml_char_content)

  • CVE Reporting CVE Reporting posted a comment on ticket #15

    Additional files for reproduction of this crash.

  • CVE Reporting CVE Reporting created ticket #16

    Denial of Service vulnerability (infinite loop) while parsing malicious XML files

  • CVE Reporting CVE Reporting created ticket #15

    Using free on not allocated memory block (ezxml_char_content)

  • CVE Reporting CVE Reporting created ticket #14

    Heap buffer overread (ezxml_decode)

  • CVE Reporting CVE Reporting created ticket #13

    NULL pointer defererence (ezxml_parse_str)

  • Mohsen Pahlevanzadeh Mohsen Pahlevanzadeh posted a comment on ticket #7

    I wrote the patch that solve the above problem: patch -p0 < ezxml.patch

  • Mohsen Pahlevanzadeh Mohsen Pahlevanzadeh created ticket #7

    warning: operation on ā€˜s’ may be undefined

  • netcat netcat created ticket #2

    a parse_str function that frees its argument automatically

  • Ramesh P Ramesh P posted a comment on ticket #12

    got the solution, we need to traverse top level node by node instead of taking node...

  • Ramesh P Ramesh P posted a comment on ticket #7

    correct you will not find root node. after parsing root pointer might be moved from...

  • Ramesh P Ramesh P posted a comment on ticket #11

    please refer "12 ezxml_cut not functioning properly_modified ticket", since this...

  • Ramesh P Ramesh P created ticket #12

    ezxml_cut not functioning properly_modified

  • Ramesh P Ramesh P created ticket #11

    ezxml_cut not functioning properly

1