---
title: "Un protocole né en 1981 corrige un bug vieux de trente-quatre ans"
locale: "fr"
url: "https://irz.fr/fr/articles/ckermit-11-protocole-grenouille-fr"
markdown_url: "https://irz.fr/fr/articles/ckermit-11-protocole-grenouille-fr.md"
category: "tech"
tags: ["open source", "protocoles", "histoire du logiciel", "C-Kermit", "maintenance"]
published_at: "2026-08-25T17:10:00.000Z"
author: "Camille Morel"
translation: "https://irz.fr/en/articles/ckermit-11-frog-protocol-en.md"
---

# Un protocole né en 1981 corrige un bug vieux de trente-quatre ans

Quinze ans après la dernière version stable, C-Kermit 11 sort avec 1 700 tests automatisés, IPv6 et un correctif pour un bug introduit en 1992. Retour sur quarante-cinq ans d'un protocole de transfert.

Le 29 avril 1981, deux DECSYSTEM-20 de l'université Columbia échangent leurs premiers octets sur un simple câble null-modem. Le 3 août 2026, le protocole qui est né là publie sa version 11. Entre les deux : quarante-cinq ans, trois maisons et une grenouille.

C-Kermit 11 (11.0.506) est la première version stable depuis 2011 ; tout ce qui était sorti entre-temps, après la 9.0.302, portait l'étiquette bêta[1](https://github.com/OpenKermit/ckermit/releases/tag/v11.0.506)[6](https://lwn.net/Articles/1086953/). Son annonce s'ouvre sur une dédicace rare dans un changelog : « Frank a été directement impliqué dans Kermit pendant 44 ans, de sa conception initiale en 1981 jusqu'en 2025 », écrit John Goerzen à propos de Frank da Cruz, cofondateur du protocole[1](https://github.com/OpenKermit/ckermit/releases/tag/v11.0.506).

Une release de plus, dira-t-on. Sauf que ce logiciel met toujours à jour des firmwares, commande des machines d'usine et discute avec des calculatrices de poche. Voilà de bonnes raisons d'ouvrir le capot.

> Illustration: Pantin de Kermit la grenouille photographié en gros plan. Le protocole doit son nom à un calendrier des Muppets accroché au mur de Columbia en mai 1981, avec l'autorisation de Henson Associates. Credit: [Pattie / Wikimedia Commons, domaine public](https://commons.wikimedia.org/wiki/File:Kermit_puppet.jpg).

## Deux DEC et un câble

Kermit naît d'un problème d'inventaire. En 1981, le centre de calcul de Columbia fait cohabiter des mainframes DEC et IBM et s'apprête à poser des micro-ordinateurs CP/M « Superbrain » dans une salle en libre-service. Aucun de ces mondes ne partage le même format de fichiers, ni le même jeu de caractères[2](https://www.kermitproject.org/fortieth.html).

Frank da Cruz, responsable des DEC-20 et chef de Bill à l'époque, pose les exigences : un protocole robuste, indépendant des plateformes, capable de transporter du binaire autant que du texte, même sur de mauvaises lignes. Catchings écrit le protocole puis les deux premières implémentations, une pour le DEC-20, une pour CP/M. Le 29 avril 1981, deux instances de DECSYSTEM-20 Kermit transfèrent un fichier via un câble null-modem. Quelques semaines plus tard vient le premier transfert « réel », entre un DEC-20 et un Superbrain[2](https://www.kermitproject.org/fortieth.html).

Le nom arrive en mai, face au calendrier des Muppets accroché au mur. Selon da Cruz, personne dans le groupe ne s'imaginait alors que le logiciel sortirait de l'université, ni qu'il durerait des décennies[3](https://www.kermitproject.org/about.html).

## Pensé pour les pires liaisons

Les contraintes de départ expliquent presque toute la suite. Paquets de moins de 100 octets, parce que certains systèmes plantaient au-delà, et encodages imprimables pour survivre à des liens qui ne laissaient pas passer 8 bits propres. Il fallait aussi convertir les jeux de caractères entre ASCII et EBCDIC, parce que les mainframes IBM n'écrivaient pas leurs fichiers comme les autres[2](https://www.kermitproject.org/fortieth.html)[3](https://www.kermitproject.org/about.html).

Et chaque session commence par négocier ce que les deux bouts savent faire. Ce choix rendait le protocole extensible : longs paquets, fenêtres glissantes et streaming sont arrivés des années plus tard sans casser les clients anciens[3](https://www.kermitproject.org/about.html). Aujourd'hui, un paquet peut monter autour de 9 Ko[4](https://www.openkermit.org/faq/).

C'est ce qui a emmené Kermit là où les protocoles plus rapides refusaient d'aller. En 2002-2003, l'expérience de microgravité CSLM-2 à bord de la Station spatiale internationale récupérait ses données d'un boîtier embarqué sous MS-DOS vers un portable Windows, via RS-232 à 38 400 bauds, en Kermit. L'ingénieur de ZIN Technologies raconte qu'une version « 3.16 Beta 12-NASA », adaptée par Joe Doupnik pour tourner sans écran, avait été livrée en quelques jours[5](https://kermitproject.org/nasa.html). D'après la documentation du projet, le protocole pilote aussi des machines d'usine, dont une tape layer utilisée pour fabriquer des éléments de structure du Boeing 787[3](https://www.kermitproject.org/about.html).

## Trois maisons

> **Quarante-cinq ans, trois maisons**
> - Premier transfert à Columbia.: 1981
> - Columbia arrête, le code passe en open source.: 2011
> - Retraite de Frank da Cruz.: 2025
> - Open Kermit publie la version 11.: 2026
> Sources : Kermit Project, Open Kermit, annonce GitHub.

Depuis 1984, Columbia faisait financer le projet par ses propres revenus. Selon les comptes publiés par da Cruz, il aura rapporté 8,89 millions de dollars à l'université ; Kermit 95, le seul volet strictement commercial, s'est vendu à plus d'un quart de million de licences en volume[3](https://www.kermitproject.org/about.html).

Le 1er juillet 2011, Columbia annule le projet. Tout le logiciel passe sous licence open source de type BSD et le site déménage chez l'hébergeur Panix. Da Cruz, licencié la même année en tant que dernier membre du projet, continue seul et bénévolement[2](https://www.kermitproject.org/fortieth.html)[3](https://www.kermitproject.org/about.html).

En 2025, il prend sa retraite du protocole, après 44 ans. Plus rien ne sort[4](https://www.openkermit.org/faq/). L'ère suivante part d'une frustration très concrète : John Goerzen, mainteneur de Kermit sous Debian, passait son temps à distribuer à la main des patchs de sécurité aux distributions, et ça devenait intenable. Il a créé Open Kermit, la troisième maison du protocole, avec un dépôt GitHub et une vraie documentation[4](https://www.openkermit.org/faq/)[7](https://fossforce.com/2026/08/at-45-years-old-c-kermit-gets-its-first-new-release-in-15-years/).

## Archéologie de bugs

Avant de modifier quoi que ce soit, Goerzen a posé des filets : tests unitaires en C, suite de régression en Python, plus de 1 700 cas exécutés en continu sur Linux, macOS, FreeBSD et NetBSD. Et, détail qui résume tout, des tests de compatibilité contre gkermit, E-Kermit et la C-Kermit 9.0.302 de 2011[1](https://github.com/OpenKermit/ckermit/releases/tag/v11.0.506). Un logiciel qui prétend parler à toutes les machines doit vérifier qu'il parle encore à son propre passé.

> C-Kermit 11
> **Des filets avant le moindre patch**
> - cas de test automatisés: 1 700+
> - systèmes validés en continu: 4
> - année du bug le plus ancien corrigé: 1992
> - lignes nettes dans la base de code: −2 600
> Source : annonce GitHub C-Kermit 11.

Les résultats de cette campagne ressemblent à un sondage stratigraphique. Un bug de corruption de données causé par un mauvais emploi de strlen(), introduit en 1992 dans C-Kermit 5A(188), vient d'être corrigé[1](https://github.com/OpenKermit/ckermit/releases/tag/v11.0.506). Un blocage de transfert remontait à la bêta.05 de 2022[1](https://github.com/OpenKermit/ckermit/releases/tag/v11.0.506). Des problèmes de pseudo-terminaux sur macOS traînaient depuis des décennies[1](https://github.com/OpenKermit/ckermit/releases/tag/v11.0.506). Et NetBSD livre la pépite du lot : son noyau peut signaler avoir écrit plus d'octets dans un pty qu'il n'en a réellement passés. En mode par défaut, C-Kermit détecte maintenant la perte et réduit tout seul la taille de ses paquets pour compenser[1](https://github.com/OpenKermit/ckermit/releases/tag/v11.0.506).

Malgré les ajouts (IPv6 avec repli sur IPv4, compatibilité OpenSSL 3.x et 4.x, vitesses série jusqu'à 4 Mbps, binaires statiques musl pour amd64 et arm64, support Android), la base de code sort 2 600 lignes plus courte que la dernière bêta 10.x. Autrement dit : le code mort retiré a pesé plus lourd que les fonctions ajoutées[1](https://github.com/OpenKermit/ckermit/releases/tag/v11.0.506).

## Les défauts rattrapés

La version 11 change aussi des comportements par défaut qui avaient vieilli, en les listant honnêtement parmi les ruptures « rares » attendues[1](https://github.com/OpenKermit/ckermit/releases/tag/v11.0.506). Le correctif principal porte un numéro : CVE-2025-68920. Les réglages historiques permettaient à un serveur Kermit distant malveillant d'exécuter des actions sur votre machine locale[1](https://github.com/OpenKermit/ckermit/releases/tag/v11.0.506). La gestion des collisions de fichiers passe de BACKUP à REJECT : avant, un serveur hostile pouvait écraser vos fichiers sensibles, .bashrc en tête[1](https://github.com/OpenKermit/ckermit/releases/tag/v11.0.506). Le mode de transfert automatique, qui devine texte ou binaire à l'extension et a déjà causé des pertes de données, est désactivé par défaut[1](https://github.com/OpenKermit/ckermit/releases/tag/v11.0.506). Et une confirmation apparaît avant de recevoir un fichier dont vous n'avez pas explicitement demandé le nom[1](https://github.com/OpenKermit/ckermit/releases/tag/v11.0.506).

Mon analyse : un protocole dessiné pour des liaisons série institutionnelles supposait des correspondants polis. Le monde de 2026 ne l'est plus toujours, et la correction est passée par les valeurs par défaut plutôt que par le protocole lui-même. Les anciens usages restent accessibles : lancer le binaire sous le nom kermit9 ou kermit10 restaure les réglages d'antan[1](https://github.com/OpenKermit/ckermit/releases/tag/v11.0.506).

Dans sa dédicace, Goerzen écrit que Kermit « collait les systèmes les uns aux autres, de la Station spatiale internationale aux calculatrices de poche »[1](https://github.com/OpenKermit/ckermit/releases/tag/v11.0.506). La phrase tient encore debout, et la nouvelle suite de compatibilité la prend au mot : la version 2026 contre celle de 2011, sur le même câble.

## References

1. [John Goerzen, annonce de C-Kermit 11.0 (11.0.506), GitHub, 3 août 2026](https://github.com/OpenKermit/ckermit/releases/tag/v11.0.506)
2. [Frank da Cruz, « Kermit Protocol 40th Anniversary », Kermit Project, 29 avril 2021](https://www.kermitproject.org/fortieth.html)
3. [Frank da Cruz, « About Kermit », Kermit Project](https://www.kermitproject.org/about.html)
4. [Open Kermit Project, FAQ](https://www.openkermit.org/faq/)
5. [Dave Hall (ZIN Technologies), « Kermit Supports NASA on the International Space Station », août 2003](https://kermitproject.org/nasa.html)
6. [LWN.net, « C-Kermit 11 released », 3 août 2026](https://lwn.net/Articles/1086953/)
7. [Christine Hall, « At 45-Years-Old, C-Kermit Gets Its First New Release in 15 Years », FOSS Force, 5 août 2026](https://fossforce.com/2026/08/at-45-years-old-c-kermit-gets-its-first-new-release-in-15-years/)
