The bfdXXbfdcopyprivatebfddatacommon function in peXXigen.c in the Binary File Descriptor (BFD) library (aka libbfd), as distributed in GNU Binutils 2.30, processes a negative Data Directory size with an unbounded loop that increases the value of (externalIMAGEDEBUGDIRECTORY) *edd so that the address exceeds its own memory region, resulting in an out-of-bounds memory write, as demonstrated by objcopy copying private info with bfdpex64bfdcopyprivatebfddata_common in pex64igen.c.
{
"versions": [
{
"introduced": "0"
},
{
"last_affected": "2.30"
},
{
"introduced": "0"
},
{
"last_affected": "7.0"
},
{
"introduced": "0"
},
{
"last_affected": "7.0"
},
{
"introduced": "0"
},
{
"last_affected": "7.0"
}
]
}