Hi Stig,

Thank you for handling this disclosure so well!

On Sun, Apr 13, 2025 at 03:23:25PM +0200, Stig Palmquist wrote:
> Perl 5.34, 5.36, 5.38 and 5.40 are vulnerable to a heap buffer overflow
> when transliterating non-ASCII bytes
> 
> Description
> -----------
> A heap buffer overflow vulnerability was discovered in Perl. 
> 
> When there are non-ASCII bytes in the left-hand-side of the `tr`
> operator, `S_do_trans_invmap` can overflow the destination pointer `d`.
> 
>    $ perl -e '$_ = "\x{FF}" x 1000000; tr/\xFF/\x{100}/;' 
>    Segmentation fault (core dumped)

Running this command on distro packages based on 5.32.1 (like in EL9)
does not segfault (produces no output), which is as expected for a
version that didn't yet have the bug (and assuming no bug backport).

> https://github.com/Perl/perl5/commit/87f42aa0e0096e9a346c9672aa3a0bd3bef8c1dd.patch

As it was mentioned in the advance notification to distros, the issue
was introduced in:

https://github.com/Perl/perl5/commit/a311ee08b6781f83a7785f578a26bbc21a7ae457

which is part of tags v5.33.1 to v5.41.10, so I guess those versions are
also affected.  The fix commit is effectively a revert of the bug commit.

Alexander

Reply via email to