[MàJ] Découverte d’un bug dans le code source des impôts
L'euro toto
Le 01 avril 2016 à 09h40
3 min
Droit
Droit
Suite à la divulgation par Bercy du code source de son calculateur d’impôts sur le revenu, un bug a été trouvé ce matin par un informaticien. Le ministère des Finances pourrait avoir à rembourser un euro à plusieurs millions de contribuables imposés au titre de l’année 2014.
Le hackathon #CodeImpot, prévu pour durer jusqu’à demain, risque d’être sérieusement émaillé par cette découverte. Une bête erreur de programmation s’est en effet glissée dans le code source de la « calculette d’impôts sur le revenu » de la Direction générale des finances publiques, rendu public aujourd’hui suite à un long bras de fer entre un citoyen et l’administration fiscale. L'origine ? Un problème d'arrondi. Le montant des impôts a systématiquement été porté à l’euro supérieur alors qu'il aurait dû être réduit à celui inférieur dès lors que le nombre de centimes ne dépassait pas 50.
« L'analyse du code source a révélé qu'un certain nombre de fonctions en "m" sont mappées sur des fonctions existantes en Python. En effet, nous explique Noah Cœur, l’informaticien qui a déniché ce bug, si le code est écrit dans un langage propriétaire, l’interpréteur est lui écrit en Python et c'est donc ce langage qui se charge effectivement des calculs. Là où le bât blesse, c'est que la fonction "arr()" utilisée à plusieurs centaines d'endroits dans le code n'est pas mappée sur "round()" comme on pourrait s'y attendre, mais sur "math.ceil()", qui arrondit à l'entier supérieur. » Autrement dit, pour un impôt estimé à 135,3 euros, le calculateur a arrondi à 136 euros, alors qu’il aurait dû rabaisser à 135.
La différence, certes minime pour chaque foyer fiscal, n'est pas neutre côté Bercy... Rapportée aux millions de contribuables vraisemblablement impactés, la douloureuse pourrait se chiffrer en dizaines de millions d’euros. Contacté par nos soins, le ministère des Finances fait des ronds dans l’eau, se refusant à tout commentaire dans l’immédiat. Et on peut le comprendre : si le code source de l’impôt sur le revenu a servi de tronc commun à d’autres prélèvements (taxe d’habitation, impôts foncier, taxe sur les ordures ménagères, etc.), l'addition pourrait s’emballer bien au-delà. On imagine déjà Michel Sapin pilonné de questions lors de la prochaine séance parlementaire afin d’évaluer l’ampleur du scandale.
Commentaires (110)
Vous devez être abonné pour pouvoir commenter.
Déjà abonné ? Se connecter
Abonnez-vousLe 01/04/2016 à 09h43
Bon, il faut aller réclamer où pour récupérer son euro injustement perçu par l’Etat ?
Parce que bon, mine de rien, un euro, c’est un euro. Et multiplié par plusieurs millions de foyers fiscaux, ça en fait beaucoup " />
Si ça se trouve, c’était voulu comme erreur…" />
Le 01/04/2016 à 09h44
Bah… une petite hausse de la TIPP permettra de reprendre l’éventuel remboursement consenti aux contribuables…. Un problème, une taxe.
Le 01/04/2016 à 09h45
c’est chacun le sien, c’est ça ? " />
Le 01/04/2016 à 09h46
je plusssoie
Le 01/04/2016 à 09h48
On comprend enfin pourquoi ils ont été réticent à donner le code.
Et encore, ils ont dû enlever pas mal de choses avant de l’ouvrir au public.
Le 01/04/2016 à 09h49
Noah Coeur <3
Ça mord en tout cas :)
Le 01/04/2016 à 09h49
C’est sûr que ça vaut le coup !
Par exemple, 1 €, ça permet d’acheter à peu près 50 g de cabillaud.
Mais comme statistiquement, l’erreur est de 0,5 €, ça ne fait plus que 25 g !
Le 01/04/2016 à 09h49
Le 01/04/2016 à 09h49
Ouip en effet. Pourtant les ronds dans l’eau sont visibles.
Le 01/04/2016 à 09h50
Une erreur, par-ci, une autre par-là. L’erreur étant de croire à la bonne foi des dirigeants. “Responsables mais pas coupables”. Malgré de nombreux morts, un de nos ministres encore en poste a été relaxé sur ce principe lors de l’affaire du sang contaminé…
Le 01/04/2016 à 09h50
Je pense que le ministère ne sais pas ce que c’est que le python…
En fait j’y crois pas du tout.
L’euro restera dans l’eau.
Le 01/04/2016 à 09h52
Joli ! Et quand on voit tous les problèmes avec le logiciel de paye des militaires, on se dit que ça pourrait presque être vrai.
" />
Le 01/04/2016 à 09h53
Le 03/04/2016 à 16h30
purée je me suis fait avoir sur les trois plus gros poissons :(
Le 01/04/2016 à 17h07
Le 01/04/2016 à 17h14
Le 01/04/2016 à 17h14
20 minutes qui reprend un poisson d’avril de nextInpact. Il est excellent ce poisson d’avril
Le 01/04/2016 à 17h21
Le 01/04/2016 à 17h24
#misère
https://fr.news.yahoo.com/bug-informatique-bercy-pourrait-%C3%AAtre-contraint-%C…
Le 01/04/2016 à 17h27
1er avril ?
En effet le python donné lors du hackathon est généré par etalab , l’organisateur
de l’evenement, il n’est pas utilisé à la DGFIP car les applis en python y sont interdites.
Le 01/04/2016 à 17h28
le code n’est pas mappée sur “round()” comme on pourrait s’y attendre, mais sur “math.ceil()”
Non ça reste un bug, il faut le mapper sur floor() par sur round().
=> []
Le 01/04/2016 à 17h42
Poisson d’avril ?
Ç’aurait été découvert.
D’autant que ce n’est ni Ceil ni Round qu’il faut utiliser, mais Floor.
En outre, Round() arrondit mal dans les boucles avec “,5”, elle est mal programmée, je préfère toujours coder ma propre fonction d’arrondi.
Le 01/04/2016 à 17h48
Le 01/04/2016 à 18h01
Le 01/04/2016 à 18h03
J’ai eu le malheur de cliquer sur le lien de Marc (Yahoo News) et de parcourir les commentaires de 2-3 articles parce que je connaissais le site que de nom. C’est juste terrifiant.
" />
Le 01/04/2016 à 19h54
Et (aller) couvrir le hackaton plutôt que de balancer une douzaine de news de poisson d’avril à la con, c’était pas possible ?
Le 01/04/2016 à 20h26
Le 02/04/2016 à 01h25
Je suppute que cela fait des années que ça dure !
Le 02/04/2016 à 04h11
Si, c’est bien du Python
  Framasoft “Les fichiers contenus dans l’archive sont l’ensemble des fichiers de paramétrage utilisés par les services informatiques de la Direction Générale des Finances Publiques pour réaliser la taxation des foyers fiscaux (IR, ISF, CSG).”
Le 02/04/2016 à 04h14
La partie sur le M et le Python est vraie ( cf lien GitHub )
Le 01/04/2016 à 10h49
Sans les commentaires, j’avoue que je serais passé à coté de la blague ^^ Tellement probable que j’étais même pas étonné lol
Le 01/04/2016 à 10h52
Surtout qu’il n’y a pas longtemps, ils avaient révélé une erreur en défaveur d’une personne (ou société)
Le 01/04/2016 à 10h53
Si la fonction est effectivement appelée à plusieurs endroits, c’est peut être bien plus d’un euro par contribuable… (si chaque sous total est arrondi vers le haut, leur somme en sera d’autant plus erronée).
Le 01/04/2016 à 10h59
le ministère des Finances fait des ronds dans l’eau
J’ai marché, jusque là.
Le 01/04/2016 à 10h59
C’est un poisson d’Avril ou la réalité ?
[EDIT] Ok je me disais aussi ^^
Le 01/04/2016 à 11h03
Excellent celui-ci, mieux que le cassement du RSA 2048 par une IA " />
Le 01/04/2016 à 11h05
1€ depuis 15 ans ca fait 15 €….
Je m’en fous " />
surtout que l’on parle par foyer fiscal, ça ne ferait pas tant que cela. Si c’était vrai, je pense pas que cela ferit beaucoup pour les impôts.
Le 01/04/2016 à 11h08
Le 01/04/2016 à 11h12
C’est quoi ce langage M ? Pourquoi ne pas avoir développé directement en python ?
Le 01/04/2016 à 11h20
Si on en croit l’article, ce n’est pas strito sensu un bug mais une erreur de calcul
Le 01/04/2016 à 11h26
Je vais arreter les sites de news le 1er avril, c’est lourd.
Le 01/04/2016 à 11h27
N’empeche, vous rigolez, mais mes impôts sont systématiquement arrondi au supérieur ^^ (quand je compare le prérempli et la déclaration de ma boîte). Par contre, ils oublient tout le temps de préremplir mes déductions suite à épargne retraite. Si des gens ne prennent pas gaffe, ça peu vite chiffrer.
Mais bon c’est un peu gros là l’arrondi ^^
Le 01/04/2016 à 11h28
Beau poisson ?
Le 01/04/2016 à 11h31
Le 01/04/2016 à 11h39
Disons que quand c’est assez subtil comme ici ca peut être fatiguant. Tu ne sais pas quelles infos croire ou non.
Ca me rappelle le jour où j’ai vraiment trouvé un hibou moyen duc dans ma véranda…vu que c’était un 1er avril personne ne m’a cru.
Le 01/04/2016 à 11h50
Je t’invite à regarder doxa sur youtube de Dany Caligula tu verra il aide :)
Le 01/04/2016 à 10h14
Carrément xD
N’empêche que je suis quand même allé voir sur le dépôt GitHub le fichier concerné à la ligne indiquée, pour en avoir le cœur net.
Mince, c’eut été trop beau :) Et tellement probable :)
Le 01/04/2016 à 10h15
GG " />
Le 01/04/2016 à 10h15
Ca mords bien ce matin
Le 01/04/2016 à 10h16
Le 01/04/2016 à 10h24
J’y mettrai pas ma main au feu figure-toi… Au moment où le code à été écrit, à ses débuts ils devaient être loin d’imaginer qu’un jour ça serait ouvert. Et année après année, rien de garantit que les mêmes (bons) développeurs se retrouvent… Comme partout ya des postes qui bougent, et à chaque fois une perte dans le transfert de compétences/connaissances
Et quand bien même, corriger le code juste avant de l’ouvrir aurait été une seconde erreur : tu n’aurais pas retrouvé les mêmes résultats avec le code ouvert comparé au simulateur en ligne et/ou à ce que tu as payé l’année passée.
Donc, comme tout programme de plusieurs centaines/milliers de ligne, il est très peu probable qu’il ne comporte pas de bug. Je ne suggère pas qu’ils sont idiot, mais c’est une constatation générale concernant la probabilité de bug dans les gros logiciels
Le 01/04/2016 à 10h24
Sans compter cette cochonnerie (d’origine allemande au passage) qui s’appelle Chorus …
Le 01/04/2016 à 10h27
Vous ne savez postposer les articles sérieux le lendemain d’un premier avril ? " /> (c’est pour noyer le poisson peut-être)
Le 01/04/2016 à 10h30
Pourquoi cette précision sur l’origine ? Quelle est l’arrière-pensée ? (questions sans troll)
Le 01/04/2016 à 10h31
Le 01/04/2016 à 10h38
Ca fait partie de l’effort demandé par les ministres. C’est juste un trou de plus dans la ceinture… (et dans nos cs)
Le 01/04/2016 à 10h38
Je ne suis pas certain de mon côté de classer le code des impôts dans une catégorie “risque énorme”. En cas de bug, le risque c’est quoi ? Collecter trop ou pas assez d’argent. Ok, ça ternit la réputation vis-à-vis du citoyen, mais c’est tout. Il n’y a pas mort d’homme, pas de blessés, pas de catastrophe nucléaire ou militaire.
Selon moi ton exemple cité avec AutoCAD pourrait avoir des répercussions plus graves : si le logiciel de CAO calcule une mauvaise résistance mécanique (ou une dimension un poil trop faible) sur une pièce d’aviation ou de réacteur nucléaire, c’est quand même sacrément moche !
Le 01/04/2016 à 10h41
Surtout que c’est typiquement le genre d’erreurs que tu détectes en premier avec des tests automatisés. Et je ne doute pas un instant que ce code soit testé à 100%.
Bref, ça mord bien. Et personnellement, j’ai mordu aussi au début.
Le 01/04/2016 à 10h44
Le 01/04/2016 à 10h46
“Contacté par nos soins, le ministère des Finances fait des ronds dans l’eau”
La Vérité est dans cette phrase
Le 01/04/2016 à 10h47
C’est triste… " />
Le 01/04/2016 à 10h49
Rah je me suis fait avoir… C’était tellement plausible, en même temps. On est plus surpris par une boulette du gouvernement ^^ Bon le fait que ça touche les impôts aurait dû me mettre la puce à l’oreille. Si il y a bien un truc qu’ils savent exactement c’est combien ils doivent prendre chaque année à chacun d’entre nous " />
Le 01/04/2016 à 09h54
Soit dit en passant j’ai déjà fait une conversion ISO d’un SI où il y avait une grosse boulette et il fallait la reproduire sinon cela faisait potentiellement un gros scandale …
Et je peux dire que c’était pas dans une appli de gestion de bibliothèque …
Mais ça mord un peu trop à mon gout sur les impôts ! (surtout que j’ai déjà fait le calcul manuellement et j’ai bien vérifié l’arrondi) :p
Le 01/04/2016 à 09h54
Mdr… J’amène l’épuisette… C’est un gros " />
Le 01/04/2016 à 09h54
Le 01/04/2016 à 09h55
Ohhhh ils se seraient trompés à notre désavantage… on n’aurait jamais imaginé cela possible !
Allez faut bien rire un grand coup un 1er avril….. on en a bien besoin !
Le 01/04/2016 à 09h56
Le 01/04/2016 à 09h56
chapeau au citoyen qui a été le seul sur soixante cinq millions de français à poursuivre un combat contre l’administration fiscale afin de l’obliger à remplir son devoir envers la communauté citoyenne.
(comme quoi, jme sentirai moins seul quand j’enverrai des recommandés)
un bug dans le code source des impôts
alors, pour éviter toute étourderie de francais, au mot, ca donne :
“j’ai essayé de consulter le code source de ma feuille d’impots ce matin, j’ai essayé de faire un clic droit sur la dite feuille, tentative restée vaine…”
Le 01/04/2016 à 09h56
On aurait voulu y croire mais….
GitHub
Le 01/04/2016 à 09h56
trop gros le poisson :p
Le 01/04/2016 à 10h00
Subtil celui là, j’ai eu un doute " />
Le 01/04/2016 à 10h03
J’y ai cru jusqu’à : “un euro à plusieurs millions de contribuables”.
" />
Le 01/04/2016 à 10h05
" />
Le 01/04/2016 à 10h07
ceci prouve encore une fois la dangerosité des codes ouverts au public.
Il est beaucoup trop facile pour des fouineurs mal intentionnés de trouver les erreurs et de les exploiter à leur avantage.
Pensez-vous qu’il auraient révélée cette faille si cela avait été à l’avantage du contribuable ?
Si ça se trouve il y a d’autres erreurs qui vont dans ce sens et elles sont machiavéliquement passées sous silence.
Et pendant ce temps là l’état perd de l’argent d’impôts qu’il n’encaisse pas.
Il faut bien entendu étendre cette crainte des codes ouverts à tous ces machin open source.
C’est votre PC qui du coup est open pour les pirates.
Fuyez les systèmes d’exploitation totalement open source comme linux et compagnie
Fuyez les systèmes d’exploitation basés sur des open sources comme OSX et Android.
Il ne reste pour votre salut que les OS fermés basés exclusivement sur du code maison.
Et n’oubliez pas de faire votre upgrade pour pouvoir bénéficier du store et de cortana.
Le 01/04/2016 à 10h08
Le 01/04/2016 à 10h09
Ca fait combien d’année que ce bug existe ? Ca si ça se trouve, on atteint la dizaine d’euro par personne entre tous les impôts et toutes les années où le bug était présent
Le 01/04/2016 à 10h11
Au moins ça m’aurait fait lire le code source, et découvrir qu’il était hébergé sur Framagit (je savais qu’ils devaient passer de Github à Framagit, mais j’avais pas vu que c’était effectivement fait).
Le 01/04/2016 à 10h12
Ah ces pauvres, toujours à raler pour moins d’un euro…
Je comprends pourquoi NXi a si peu d’abonnés.. " />
Par contre pour payer sa canette de coca 2 euros alors que ca en vaut même pas 10 cts, il y a du monde.
Le 01/04/2016 à 14h22
Le code des impôts est en soi un bug.
Le 01/04/2016 à 14h27
J’espère pour eux que c’est un poisson d’avril ^^”
Le 01/04/2016 à 14h41
Et là, c’est la panique :
Twitter Twitter
Le 01/04/2016 à 14h43
le scénario de Superman 3 30 ans après " />
Le 01/04/2016 à 14h51
Le 01/04/2016 à 15h09
Si ça se trouve c’est même pire que ça. Certains langages comme le Java sont faux de base avec les décimales et donnent des résultats du genre : 7.7 * 3 = 23,09999999999999999999999999
Le 01/04/2016 à 15h12
Xavier a réussi à avoir Axelle ! La classe !
Le 01/04/2016 à 15h16
Heu… Le calcul de l’impôt n’est sûrement pas fait en Python par le mainframe, c’est - au mieux - un langage comme du COBOL. En partant du principe que ça pourrait ne pas être un poisson d’avril, il ne peut donc s’agir que de code qui permettrait à un contribuable d’estimer l’impôt dû, via un site Web du gouvernement, qui afficherait bien en grand “Ceci est une estimation de ce que vous auriez à payer et n’est pas contractuel”.
Donc bon, y’a pas le feu aux étangs de Bercy.
Le 01/04/2016 à 15h17
J’imagine que le type choisi pour calculer les impôts est un type monétaire et non une virgule flottante.
Le 01/04/2016 à 15h23
Noah Cœur, génial celui-ci " />
Le 01/04/2016 à 15h54
Oui je suis rabat-joie mais non j’ai encore mon âme d’enfant ça va :p
Je me sent un peu supérieur mais je ne suis pas megalo ça va.
Le 01/04/2016 à 15h58
Le 01/04/2016 à 16h09
Punaise, j’ai réussi à éviter les autres poissons, mais celui-là, je suis tombé en plein dedans… Faut dire aussi, il est vraiment réussi.
Chapeau Xavier!
Le 01/04/2016 à 16h41
Bon poisson, bravo les gars.
Vu que ça prends bien ici ça va être repris demain sur d’autres sites…
Très fort :)
Le 01/04/2016 à 16h44
Le 01/04/2016 à 17h05
Pas crédible comme poisson vu que Python n’est pas dans leur matrice technologique. Mais ça mord quand même ;)
Le 01/04/2016 à 12h10
Ça ne fait probablement que commencer ^^
Le 01/04/2016 à 12h19
La même ^^
Joli Sous titre. C’est quand même vachement crédible comme news. Bien vu ;p
Le 01/04/2016 à 12h29
Juste une pique pour “casser” le mythe de la “deutsch kalitat”. Mais faut dire que le soft en question est une horreur tant fonctionnelle qu’ergonomique. Certes pas au niveau de Louvois mais …
Le 01/04/2016 à 12h29
c’est une blague du poisson d’Avril.
J’ai déjà calculé mes impots sur Excel et je tombais bien sur le bon montant arrondie à l’inférieur
Le 01/04/2016 à 12h40
Le 01/04/2016 à 12h41
Je vois que je suis pas le seul…
Le 01/04/2016 à 12h44
Le 01/04/2016 à 13h01
“le ministère des Finances fait des ronds dans l’eau”
non mais sérieux là " />" />
Le 01/04/2016 à 13h04
Langage Marée (basse ou haute suivant le niveau d’intégration)
Le 01/04/2016 à 13h04
Les commerçants font ça depuis longtemps et personne ne râle. Je vois pas le problème pour l’Etat si l’excédent peut servir à arrondir l’indemnité des élus.
Le 01/04/2016 à 13h16
effectivement, le seul moyen de vérifier est de refaire les calculs sur papier :-)
Le 01/04/2016 à 13h44
Je suis persuadé que le code a été minutieusement controlé de nombreuses fois peu avant d’être ouvert, pour éviter une très mauvaise publicité bien entendu. Est-ce que ca a été fait aussi rigoureusement dans le passé j’en suis déjà moins sur.
" />cette news.
Le 01/04/2016 à 13h46
Le 01/04/2016 à 14h00
Le 01/04/2016 à 14h01
Ce n’est pas une blague du 1 avril?
" />
Le 01/04/2016 à 14h09
Le pire cela pourrait arriver