You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Out-of-bounds Read in Assimp::ASEImporter::BuildUniqueRepresentation. An attacker could potentially exploit the vulnerability to cause a remote code execution, if they can trick the victim into running assimp on a malformed ASE file.
Affected
assimp>=5.4.3
Details
In code/AssetLib/ASE/ASELoader.cpp:734, there is no boundary validation for (*i).mIndices[n] value, which cause OOB Read in mesh.mPositions
// code/AssetLib/ASE/ASELoader.cpp:731unsignedint iCurrent = 0, fi = 0;
for (std::vector<ASE::Face>::iterator i = mesh.mFaces.begin(); i != mesh.mFaces.end(); ++i, ++fi) {
for (unsignedint n = 0; n < 3; ++n, ++iCurrent) {
mPositions[iCurrent] = mesh.mPositions[(*i).mIndices[n]];
gdb-peda$ p mesh.mPositions
$9 = std::vector of length 0, capacity 0
gdb-peda$ p (*i).mIndices[n]
$10 = 0xffffffff
gdb-peda$ x/x &mesh.mPositions
0x617000000b00: 0x0000000000000000
gdb-peda$ x/x &mesh.mPositions[(*i).mIndices[n]]
0xbfffffff4: 0x0000000000000000
Summary
Out-of-bounds Read in
Assimp::ASEImporter::BuildUniqueRepresentation
. An attacker could potentially exploit the vulnerability to cause a remote code execution, if they can trick the victim into running assimp on a malformed ASE file.Affected
assimp>=5.4.3
Details
In
code/AssetLib/ASE/ASELoader.cpp:734
, there is no boundary validation for(*i).mIndices[n]
value, which cause OOB Read inmesh.mPositions
PoC
Sanitizer Report
Common weakness enumerator (CWE)
The text was updated successfully, but these errors were encountered: