Cisco-beveiligingsonderzoekers
Het beveiligingslek kan worden misbruikt om code uit te voeren in een situatie waarin de aanvaller de vorming van een negatieve waarde van de variabele kan organiseren waarmee de grootte van de gekopieerde gegevens wordt verzonden (deze wordt bijvoorbeeld negatief als er meer dan 2 GB aan gegevens wordt overgedragen). gegevens, maar tijdens de aanval moet u minimaal 4 GB overbrengen om de bufferlimieten te overschrijden. De memcpy()-functie wordt veel gebruikt in toepassingen, en ARMv7-processors komen vaak voor in autosystemen, mobiele, industriële, consumenten-, communicatie- en embedded apparaten, die potentieel onderhevig zijn aan aanvallen met behulp van Bluetooth, HD Radio/DAB, USB, CAN-bus, Wi-Fi Fi en andere externe gegevensbronnen (bijvoorbeeld services en applicaties die toegankelijk zijn via het netwerk en die invoergegevens accepteren zonder beperkingen op de grootte kunnen worden aangevallen).
Een voorbeeld is de creatie van een werkende exploit om een HTTP-server aan te vallen die is ingebouwd in auto-informatiesystemen en toegankelijk is via het auto-Wi-Fi-netwerk. Een aanvaller van buitenaf zou een memcpy-kwetsbaarheid op deze server kunnen misbruiken door een zeer groot GET-verzoek te verzenden en root-toegang tot het systeem te verkrijgen.
Op 32-bits x86-systemen doet het probleem zich niet voor, omdat de memcpy-implementatie voor deze architectuur de variabele size correct interpreteert als een geheel getal zonder teken van het type size_t (in assembleertaal
De oplossing komt neer op het vervangen van het gebruik van assemblage-instructies die werken op ondertekende operanden (bge en blt) door niet-ondertekende tegenhangers (blo en bhs).
Het probleem is nog niet opgelost
Bron: opennet.ru