Le code UNIXv4, premier système d'exploitation avec un noyau en C, a été restauré. Vulnérabilité dans UNIXv4

À la fin de l'année dernière, lors du nettoyage du centre de calcul de l'Université de l'Utah, une bande magnétique archive contenant le code du système d'exploitation UNIXv4, développé en 1973 pour l'ordinateur PDP-11/45 et considéré comme perdu, a été découverte. UNIXv4 a poursuivi le développement du système d'exploitation UNIXv3 publié un an auparavant, dans lequel le langage C et les canaux sans nom ont été utilisés pour la première fois. Une des caractéristiques d'UNIXv4 a été la réécriture du noyau de l'assembleur en langage C. Le code noyau d'UNIXv4 a été écrit par Ken Thompson, tandis que les pilotes ont été développés par Dennis Ritchie.

À la fin décembre 2025, le personnel du musée de l'histoire de l'informatique a pu retrouver le matériel nécessaire et extraire l'archive conservée sur la bande. Pour numériser le signal analogique enregistré sur la bande, un outil appelé readtape a été utilisé, et pour le décodage du format de l'archive, les travaux réalisés lors de la récupération de l'archive avec la mise en œuvre de l'éditeur Emacs par James Gosling ont été mobilisés.

En plus du code UNIXv4, la bande contenait également les codes sources de l'un des premiers compilateurs pour le langage C et de l'interpréteur du langage SNOBOL. Plus tard, le code UNIXv4 a été nettoyé et publié sur GitHub dans une forme adaptée à la compilation et à l'exécution dans un simulateur PDP-11. Le code UNIXv4 comprend 61 000 lignes, dont 27 000 en langage C, 33 000 en assembleur pour PDP-11 et environ 1 000 en fichiers d'en-tête.

Le code UNIXv4, premier système d'exploitation avec un noyau en C, a été restauré. Vulnérabilité dans UNIXv4

Un des chercheurs en sécurité a attiré l'attention sur l'utilitaire « su », fourni avec UNIXv4. Cet utilitaire comprenait moins de 50 lignes de code, était installé avec le drapeau setuid-root et permettait d'exécuter /bin/sh avec les droits root après saisie du mot de passe correct. Le code contenait une vulnérabilité entraînant un dépassement de tampon dû à la copie du mot de passe saisi par l'utilisateur dans un tableau fixe de 100 caractères sans vérifier la taille des données saisies.

Le problème identifié a été commenté par Douglas McIlroy, 93 ans, membre de l'équipe des développeurs originaux d'Unix chez Bell Labs, qui a proposé le concept de canaux anonymes et créé des utilitaires tels que echo, spell, diff, sort, join et tr. Selon Douglas, avant l'apparition du ver de Morris en 1988, peu de gens prêtaient attention aux débordements de tampon. L'ajout de vérifications de la taille des données saisies manuellement était considéré comme un surplus de code, et un arrêt d'urgence en cas de débordement était perçu comme une réaction maladroite aux données d'entrée incorrectes. Avec le temps, les débordements résultant du traitement de chaînes générées automatiquement ont commencé à être corrigés, mais pour la saisie manuelle, la logique était au niveau "qui aurait besoin de saisir manuellement des chaînes trop longues ?"

Source : opennet.ru

Acheter un hébergement fiable pour les sites avec protection DDoS, serveurs VPS VDS 🔥 Acheter un hébergement fiable pour les sites avec protection DDoS, serveurs VPS VDS | ProHoster