[MàJ] Découverte d'un bug dans le code source des impôts

L'euro toto

[MàJ] Découverte d’un bug dans le code source des impôts

[MàJ] Découverte d'un bug dans le code source des impôts

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.

code impôts bug

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)


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 <img data-src=" />



Si ça se trouve, c’était voulu comme erreur…<img data-src=" />


Bah… une petite hausse de la TIPP permettra de reprendre l’éventuel remboursement consenti aux contribuables…. Un problème, une taxe.


c’est chacun le sien, c’est ça ? <img data-src=" />


je plusssoie


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.


Noah Coeur &lt;3



Ça mord en tout cas :)


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 !








Jaskier a écrit :



Bon, il faut aller réclamer où pour récupérer son euro injustement perçu par l’Etat ?



Il faudra envoyer une lettre recommandée&nbsp; avec accusé de réception, au prix de 8€.

&nbsp;



Ouip en effet. Pourtant les ronds dans l’eau sont visibles.


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é…


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.


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.

<img data-src=" />








Jaskier a écrit :



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 <img data-src=" />



Si ça se trouve, c’était voulu comme erreur…<img data-src=" />









Franchouillard a écrit :



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é…







y sont mignons…



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 …&nbsp;



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


Mdr… J’amène l’épuisette… C’est un gros <img data-src=" />








KP2 a écrit :



yI’ sont mignons…



<img data-src=" />



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 !








KP2 a écrit :



y sont mignons…





Non, juste blasé pour ma part ! Bien vu la blague, mais tellement plausible !



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&nbsp;





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…”


trop gros le poisson :p


Subtil celui là, j’ai eu un doute <img data-src=" />


J’y ai cru jusqu’à : “un euro à plusieurs millions de contribuables”.

<img data-src=" />


<img data-src=" />



&nbsp;


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.








Jaskier a écrit :



Si ça se trouve, c’était voulu comme erreur…<img data-src=" />





J’en doute fortement :)



Ca me fait surtout penser à une règle de gestion pas définie car “évidente”.



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&nbsp;


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).


Ah ces pauvres, toujours à raler pour moins d’un euro…

Je comprends pourquoi NXi a si peu d’abonnés.. <img data-src=" />



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.


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 :)


GG <img data-src=" />


Ca mords bien ce matin








Nozalys a écrit :



Carrément xD

Mince, c’eut été trop beau :) Et tellement probable :)





Ils ne sont pas idiots aux impots, ils ont de bons informaticiens qui ont dû checker le code 250.000 fois… Surout avant d’ouvrir le code du calculateur



Ils savent très bien qu’ils se feraient cartonner à la moindre erreur, les râleux de base n’attendent que ca.



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


Sans compter cette cochonnerie (d’origine allemande au passage) qui s’appelle Chorus …


Vous ne savez postposer les articles sérieux le lendemain d’un premier avril ? <img data-src=" /> (c’est pour noyer le poisson peut-être)


Pourquoi cette précision sur l’origine ? Quelle est l’arrière-pensée ? (questions sans troll)








Nozalys a écrit :



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





J’entends bien, mais il faut aussi voir la criticité de l’impact d’une erreur, qui determinera donc la robustesses des tests et des contrôles.



Qu’il y ait des failles dans, je ne sais pas, disons AutoCAD, l’impact est faible.

Par contre le code des impôts, impact ENORME en terme de réputation, donc check très très très minutieux à prévoir…



Je ne sais pas si vous autres informaticiens faites des analyses de risque et de criticité dans vos projets (j’espère bien que oui), mais typiquement si on fait un FMEA sur un projet de codage des imppôts, on est dans la catégorie “risque enorme”, action à prendre très drastique même si probabilité d’occurence faible.



Ca fait partie de l’effort demandé par les ministres. C’est juste un trou de plus dans la ceinture… (et dans nos cs)


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 !


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.








Nozalys a écrit :



. 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.





Ouh la la, tu serais surpris à quel point la réputation passe avant la sécurité dans la tête des décideurs de bon nombre d’endroits, même quand on parle de risque grave pour la santé…

Je te le dis pour le vivre en ce moment même.



“Contacté par nos soins, le ministère des Finances fait des ronds dans l’eau”



&nbsp;La Vérité est dans cette phrase


C’est triste… <img data-src=" />


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 <img data-src=" />


Sans les commentaires, j’avoue que je serais passé à coté de la blague ^^ Tellement probable que j’étais même pas étonné lol


Surtout qu’il n’y a pas longtemps, ils avaient révélé une erreur en défaveur d’une personne (ou société)


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 ministère des Finances fait des ronds dans l’eau





J’ai marché, jusque là.


C’est un poisson d’Avril ou la réalité ?



[EDIT] Ok je me disais aussi ^^


Excellent celui-ci, mieux que le cassement du RSA 2048 par une IA <img data-src=" />


1€ depuis 15 ans ca fait 15 €….





Je m’en fous <img data-src=" />



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.








FunnyD a écrit :



1€ depuis 15 ans ca fait 15 €….





Je m’en fous <img data-src=" />





C’est même pas le prix d’une boutanche de chouchenn



C’est quoi ce langage M ? Pourquoi ne pas avoir développé directement en python ?


Si on en croit l’article, ce n’est pas strito sensu un bug mais une erreur de calcul


Je vais arreter les sites de news le 1er avril, c’est lourd.


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 ^^


Beau poisson ?








coolraoul a écrit :



Je vais arreter les sites de news le 1er avril, c’est lourd.





Rabat-joie sans humour qui a perdu son âme d’enfant.

Tu te sens supérieur aux autres moutons, avoue.

:fumer;



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.


Je t’invite à regarder doxa sur youtube de Dany Caligula tu verra il aide :)


Ça ne fait probablement que commencer ^^


La même ^^



Joli Sous titre.&nbsp; C’est quand même vachement crédible comme news. Bien vu ;p


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 …


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








befa508 a écrit :



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





oui mais attention tu as certainement comme processeur un dérivé du Pentium

&nbsp;

&nbsp;



Je vois que je suis pas le seul…








picatrix a écrit :



oui mais attention tu as certainement comme processeur un dérivé du Pentium

&nbsp;

&nbsp;





“Je vous parle d’un temps que les moins de 20 ans…”



“le ministère des Finances fait des ronds dans l’eau”



non mais sérieux là <img data-src=" /><img data-src=" />


Langage Marée (basse ou haute suivant le niveau d’intégration)


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.


effectivement, le seul moyen de vérifier est de refaire les calculs sur papier :-)


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.





<img data-src=" />cette news.

&nbsp;








StackHeap a écrit :



C’est quoi ce langage M ? Pourquoi ne pas avoir développé directement en python ?



Langage M <img data-src=" />









talrek a écrit :



“le ministère des Finances fait des ronds dans l’eau”



non mais sérieux là <img data-src=" /><img data-src=" />







C’est un moins bon poisson que

“Michel Sapin s’est cassé le bras en glissant dans une station essence”



Ce n’est pas une blague du&nbsp; 1 avril?



<img data-src=" />


Le pire cela pourrait arriver


Le code des impôts est en soi un bug.


J’espère pour eux que c’est un poisson d’avril ^^”


le scénario de Superman 3 30 ans après <img data-src=" />








MarcRees a écrit :



Et là, c’est la panique :

https://twitter.com/Min_Finances/status/715867623049846784

https://twitter.com/axellelemaire/status/715892622657773568





Quel succès !



Allez, le défi pour l’année prochaine : troller Donald Trump. Je sais, la barre est haute, mais faut de l’ambition dans la vie !



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


Xavier a réussi à avoir Axelle ! La classe !


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.&nbsp;


J’imagine que le type choisi pour calculer les impôts est un type monétaire et non une virgule flottante.


Noah Cœur, génial celui-ci <img data-src=" />


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.








coolraoul a écrit :



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.





T’inquiète, je te repète juste ce qu’on m’a sorti ce matin sur une autre news….



Entre ca et “boycottez les sites d’infos le 01/04” (qui vient de David, en plus), j’aime de plus en plus cette tradition moisie et ses suiveurs.



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!


Bon poisson, bravo les gars.

Vu que ça prends bien ici ça va être repris demain sur d’autres sites…

Très fort :)








Cashalow a écrit :



Noah Coeur &lt;3




Ça mord en tout cas :)







Je n’ai pas pigé l’astuce, malgré avoir cherché un peu ; peux-tu éclairer ma lanterne pliz ?&nbsp;<img data-src=" />

&nbsp;





Exception a écrit :



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.








Au lieu de raconter des âneries comme d'habitude, réfléchis au fait que tu peux recalculer ton impôt toi-même sans avoir besoin du calculateur de Bercy.   









Franchouillard a écrit :



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é…





C’est bien de correspondre à son pseudonyme. Bien entendu, tu as lu le jugement et tu sais pourquoi le ministre a été relaxé. <img data-src=" />



Pas crédible comme poisson vu que Python n’est pas dans leur matrice technologique. Mais ça mord quand même ;)








MarcRees a écrit :



Et là, c’est la panique :

https://twitter.com/Min_Finances/status/715867623049846784

https://twitter.com/axellelemaire/status/715892622657773568







On peut dire que Xavier Berne n’a jamais aussi bien porté son nom de famille qu’aujourd’hui <img data-src=" />









OlivierJ a écrit :



Je n’ai pas pigé l’astuce, malgré avoir cherché un peu ; peux-tu éclairer ma lanterne pliz ? <img data-src=" />







Noah Cœur = (no) Hacker



20 minutes qui reprend un poisson d’avril de nextInpact. Il est excellent ce poisson d’avril








OlivierJ a écrit :



Je n’ai pas pigé l’astuce, malgré avoir cherché un peu ; peux-tu éclairer ma lanterne pliz ? <img data-src=" />





No Hacker ? Mais j’avais pas remarqué avant son commentaire.



Grillé mais ça confirme.



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.



&nbsp;