De RyuJIT-compiler in de laatste versie van .Net blijkt een ernstige bug te bevatten, waardoor in sommige gevallen functies met de verkeerde waarden worden aangeroepen. De bug doet zich alleen voor bij het toepassen van bepaalde optimalisaties in releasemodus.
Ontwikkelaars van de website StackOverflow ontdekten de bug. In releasemodus worden bepaalde optimalisaties toegepast bij het uitvoeren van de code. De optimalisatie van tail calls leidt in .Net 4.6 tot problemen. In sommige gevallen worden daardoor de parameters van functieaanroepen gevuld met ogenschijnlijk willekeurige waarden.
Tail calling is een optimalisatie waarbij een aangeroepen functie, die de laatste is een reeks, niet op een nieuwe stack frame wordt uitgevoerd, maar de frame van zijn caller gebruikt. De parameters van functies die als tail calls worden uitgevoerd kunnen worden gevuld met ogenschijnlijk willekeurige waarden. De bug doet zich voor bij door IIS gehoste webapps, maar niet bij applicaties die in de command prompt draaien.
De bug lijkt niet direct te misbruiken maar kan indirect wel een veiligheidsrisico vormen. Zo zouden gebruikers bijvoorbeeld onbedoeld meer mogelijkheden kunnen krijgen binnen een applicatie. Daarnaast zou de verminderde stabiliteit een probleem kunnen vormen. Op GitHub is inmiddels een pull request met een oplossing geplaatst. Wanneer Microsoft een update uitbrengt, is nog niet bekend.