TinyXML2 through 10.0.0 has a reachable assertion for UINT_MAX/digit, that may lead to application exit, in tinyxml2.cpp XMLUtil::GetCharacterRef.
The product contains an assert() or similar statement that can be triggered by an attacker, which leads to an application exit or other behavior that is more severe than necessary.
| Name | Vendor | Start Version | End Version | 
|---|---|---|---|
| Tinyxml2 | Tinyxml2_project | * | 10.0.0 (including) | 
| Tinyxml2 | Ubuntu | focal | * | 
| Tinyxml2 | Ubuntu | oracular | * | 
| Tinyxml2 | Ubuntu | trusty/esm | * | 
While assertion is good for catching logic errors and reducing the chances of reaching more serious vulnerability conditions, it can still lead to a denial of service. For example, if a server handles multiple simultaneous connections, and an assert() occurs in one single connection that causes all other connections to be dropped, this is a reachable assertion that leads to a denial of service.