Hello! I got the CVE ID (CVE-2024-25262) for this issue. Thanks dongzhuo zhao <dongzhuozhaosec...@gmail.com> 于2024年2月19日周一 11:03写道:
> Hello,I have reported this issue to TexLive and the maintenance team have > confirmed this issue and fixed it. they want me reuest CVE ID by myself. > And Iasrequest a CVE ID, but do not get answer for this moment. If you > could accelerate this requesting process, that would be great! > > George-Andrei Iosif <2047...@bugs.launchpad.net> 于2024年2月7日周三 16:29写道: > >> I have marked this bug as public because the public domain already >> contains information about this TeX Live issue (as seen in the GitHub >> issue and upstream changelog). >> >> @dongzhuo, could you please contact the upstream (either in the existing >> PR or via their mailing list) to confirm that they (1) recognize this >> issue as a vulnerability impacting the security of their software (and >> not just a functional bug), and (2) do not have any other CVE ID >> assignment process already established? The latter is important because >> some projects prefer contacting MITRE for the assignment. >> >> -- >> You received this bug notification because you are subscribed to the bug >> report. >> https://bugs.launchpad.net/bugs/2047912 >> >> Title: >> There is a heap buffer overflow in texlive-bin >> >> Status in texlive-bin package in Ubuntu: >> New >> >> Bug description: >> Hello, >> I found a heap-buffer overflow in function ttfLoadHDMX; ttfdump can >> install by apt-get texlive-binaries. I compile lastest texlive-source by >> clone https://github.com/TeX-Live/texlive-source/ on unbuntu for >> debugging. >> The overflow content and size are controlled by input. Exploiting >> this issue can achive any code excuted >> >> The steps for reproducing the vul on unbuntu: >> (1) sudo apt-get iunstall texlive-binaries >> (2) ttfdump -i poc.ttf >> >> >> The poc.ttf can view the attachment .ttfdump aborted and prompt >> "malloc(): corrupted top size" due memory corrupt. >> >> The issue exist in function ttfLoadHDMX : >> >> /*** function ttfLoadHDMX begin ***/ >> >> static void ttfLoadHDMX (FILE *fp,HDMXPtr hdmx,ULONG offset) >> { >> int i; >> >> xfseek(fp, offset, SEEK_SET, "ttfLoadHDMX"); >> >> hdmx->version = ttfGetUSHORT(fp); >> hdmx->numDevices = ttfGetUSHORT(fp); >> hdmx->size = ttfGetLONG(fp); >> >> hdmx->Records = XCALLOC (hdmx->numDevices, DeviceRecord); >> >> for (i=0;i<hdmx->numDevices;i++) >> { >> hdmx->Records[i].PixelSize = ttfGetBYTE(fp); >> hdmx->Records[i].MaxWidth = ttfGetBYTE(fp); >> hdmx->Records[i].Width = XCALLOC (hdmx->size, BYTE); (1) >> fread ((hdmx->Records+i)->Width, sizeof(BYTE), >> hdmx->numGlyphs+1,fp); (2) >> } >> } >> >> >> /*** function ttfLoadHDMX end ***/ >> >> >> At above code (1) ,allocte heap buffer for Width according to the >> parsed hdmx width. And at above code (2) , copy Width content from file and >> copy size decided by controlled hdmx->numGlyphs. In the poc , hdmx->size >> eaqual to 1216 and hdmx->numGlyphs+1 is 4155,which get heap buffer overflow. >> >> /*** debug info ***/ >> (gdb) p hdmx->numGlyphs+1 >> $23 = 4155 >> (gdb) p hdmx->size >> $24 = 1216 >> /*** debug info end ***/ >> >> >> From : >> >> Dongzhuo zhao working with ADLab of Venustech >> >> To manage notifications about this bug go to: >> >> https://bugs.launchpad.net/ubuntu/+source/texlive-bin/+bug/2047912/+subscriptions >> >> -- You received this bug notification because you are a member of Desktop Packages, which is subscribed to texlive-bin in Ubuntu. https://bugs.launchpad.net/bugs/2047912 Title: There is a heap buffer overflow in texlive-bin Status in texlive-bin package in Ubuntu: New Bug description: Hello, I found a heap-buffer overflow in function ttfLoadHDMX; ttfdump can install by apt-get texlive-binaries. I compile lastest texlive-source by clone https://github.com/TeX-Live/texlive-source/ on unbuntu for debugging. The overflow content and size are controlled by input. Exploiting this issue can achive any code excuted The steps for reproducing the vul on unbuntu: (1) sudo apt-get iunstall texlive-binaries (2) ttfdump -i poc.ttf The poc.ttf can view the attachment .ttfdump aborted and prompt "malloc(): corrupted top size" due memory corrupt. The issue exist in function ttfLoadHDMX : /*** function ttfLoadHDMX begin ***/ static void ttfLoadHDMX (FILE *fp,HDMXPtr hdmx,ULONG offset) { int i; xfseek(fp, offset, SEEK_SET, "ttfLoadHDMX"); hdmx->version = ttfGetUSHORT(fp); hdmx->numDevices = ttfGetUSHORT(fp); hdmx->size = ttfGetLONG(fp); hdmx->Records = XCALLOC (hdmx->numDevices, DeviceRecord); for (i=0;i<hdmx->numDevices;i++) { hdmx->Records[i].PixelSize = ttfGetBYTE(fp); hdmx->Records[i].MaxWidth = ttfGetBYTE(fp); hdmx->Records[i].Width = XCALLOC (hdmx->size, BYTE); (1) fread ((hdmx->Records+i)->Width, sizeof(BYTE), hdmx->numGlyphs+1,fp); (2) } } /*** function ttfLoadHDMX end ***/ At above code (1) ,allocte heap buffer for Width according to the parsed hdmx width. And at above code (2) , copy Width content from file and copy size decided by controlled hdmx->numGlyphs. In the poc , hdmx->size eaqual to 1216 and hdmx->numGlyphs+1 is 4155,which get heap buffer overflow. /*** debug info ***/ (gdb) p hdmx->numGlyphs+1 $23 = 4155 (gdb) p hdmx->size $24 = 1216 /*** debug info end ***/ From : Dongzhuo zhao working with ADLab of Venustech To manage notifications about this bug go to: https://bugs.launchpad.net/ubuntu/+source/texlive-bin/+bug/2047912/+subscriptions -- Mailing list: https://launchpad.net/~desktop-packages Post to : desktop-packages@lists.launchpad.net Unsubscribe : https://launchpad.net/~desktop-packages More help : https://help.launchpad.net/ListHelp