Je sais que beaucoup d'entre vous font tourner un DokuWiki quelque part, alors c'est pour ça que je vous en parle... Le 2 septembre dernier, Andreas Gohr, qui écrit ce moteur de wiki depuis plus de 20 ans, a confirmé publiquement une faille critique dans son propre bug tracker.
Le signalement vient d'un chercheur, sebastianosrt, qui avait envoyé le détail de la faille par mail mais comme il n'a jamais reçu de réponse, il a fini par ouvrir un ticket public pour dire qu'il n'arrivait pas à joindre
Je sais que beaucoup d'entre vous font tourner un DokuWiki quelque part, alors c'est pour ça que je vous en parle... Le 2 septembre dernier, Andreas Gohr, qui écrit ce moteur de wiki depuis plus de 20 ans, a confirmé publiquement une faille critique dans son propre bug tracker.
Le signalement vient d'un chercheur, sebastianosrt, qui avait envoyé le détail de la faille par mail mais comme il n'a jamais reçu de réponse, il a fini par ouvrir un ticket public pour dire qu'il n'arrivait pas à joindre le mainteneur.
Le mail était dans les spams...
Gohr l'a repêché huit minutes après l'ouverture du ticket, et un peu plus d'une heure après, il qualifié lui-même ce bug de critique, car il permet une exécution de code à distance (RCE) voire même une suppression de fichiers arbitraire.
Alors comme d'hab avec ce genre d'actu, il y a une bonne et une mauvaise nouvelle. La bonne, c'est qu'il faut un accès en écriture sur DokuWiki pour exploiter le truc. Cela veut dire que si votre wiki est en lecture seule, il ne pourra pas tomber. Mais la mauvaise, c'est que si votre wiki a des comptes rédacteurs, ou pire, l'inscription ouverte, alors n'importe lequel de ces comptes peut passer de "je corrige une typo" à "j'exécute ce que je veux sur ton serveur, nananananère". Et à peu près toutes les versions de DokuWiki publiées depuis dix ans sont concernées.
Rassurez-vous, le
correctif est sorti le soir même
, dans la version 2026-07-14c mais faudra forcement mettre à jour si vous êtes sur une ancienne version, parce que les précédentes releases majeures n'ont pas eu de patch. Et si vous l'avez installé avec apt, pour le moment, le correctif n'a pas été déployé sur les dépôts. Donc pour ceux qui ne peuvent pas mettre à jour tout de suite, Gohr conseille de désactiver l'option usedraft, qui est active par défaut.
Dernier point, et il est important, ce correctif interdit désormais aux plugins de ranger des objets PHP dans le cache d'instructions. Ceux qui le faisaient vont donc casser. Par exemple,
les formulaires du plugin bureaucracy
finiront en erreur sur toutes les pages. De son côté, le plugin gallery a quand a lui été mis à jour pour supporter cette update... On verra si les autres plugins arrivent à suivre...
Pour le reste, il n'y a ni CVE ni annonce ailleurs. Tout se passe
dans ce ticket
, et il est toujours ouvert si vous voulez y ajouter votre grain de sel ^^.
En ce magnifique mardi matin, moi et mon mal de crâne, nous avons découvert un truc assez cool qui est un genre de wiki personnel en markdown, comme Obsidian ou Notion, mais avec un super pouvoir qui est que vous pouvez y écrire du code qui s’exécute directement dans vos notes !! Hé oui, du vrai code ! Pas des plugins, pas des extensions, mais du code Lua intégré dans votre texte comme si vos notes étaient devenues un environnement de dev à part entière.
Ça s’appelle
SilverBullet
, c’est open so
En ce magnifique mardi matin, moi et mon mal de crâne, nous avons découvert un truc assez cool qui est un genre de wiki personnel en markdown, comme Obsidian ou Notion, mais avec un super pouvoir qui est que vous pouvez y écrire du code qui s’exécute directement dans vos notes !! Hé oui, du vrai code ! Pas des plugins, pas des extensions, mais du code Lua intégré dans votre texte comme si vos notes étaient devenues un environnement de dev à part entière.
Ça s’appelle
SilverBullet
, c’est open source (licence MIT), et franchement, si vous avez déjà bidouillé des configs Neovim ou des scripts Redis, vous allez kiffer car c’est beaucoup plus simple ^^.
Ça ressemble à n’importe quel wiki markdown moderne. Vous écrivez vos notes en local, elles sont stockées en fichiers statiques .md, vous avez des liens bidirectionnels pour connecter vos idées, et l’interface est optimisée avec des raccourcis clavier. C’est évidemment une Progressive Web App qui fonctionne 100% hors ligne (
comme expliqué sur leur site
), et vous gardez le contrôle total sur vos données, puisque tout est auto-hébergé sur votre machine ou votre serveur.
Ainsi, avec le scripting Lua intégré, vous pouvez littéralement taper ${10 + 2} dans une note et le résultat s’affichera en temps réel : 12 (vous l’aviez les matheux ?? ^^). Et si vous voulez une liste de vos 5 dernières pages modifiées qui se met à jour automatiquement, suffit d’écrire un petit bout de Lua, et hop, votre wiki devient “vivant”.
Alors oui, je sais ce que vous allez me dire, Obsidian a Dataview, Logseq a ses requêtes en Datalog…etc donc c’est pareil non ?
Et bien pas vraiment parce que Dataview ça vous demande quand même d’apprendre un DSL (Domain Specific Language) avec une syntaxe bizarroïde et de vous palucher les 50 pages de doc. Logseq quand à lui vous balance du Datalog sans trop d’explications. Alors que SilverBullet, lui, vous laisse écrire du Lua. Et le Lua, c’est simple, c’est dispo partout (Neovim, Redis, les addons World of Warcraft, OSB, etc.), c’est documenté, et c’est fait pour être embarqué dans des applications.
Si vous êtes data scientist, vous connaissez sûrement les Jupyter Notebooks qui sont markdown avec du code Python exécutable dedans. Hé bien SilverBullet fait exactement la même chose, mais pour vos notes personnelles. Vos notes ne sont plus des fichiers inertes, mais deviennent des mini-programmes qui peuvent calculer, générer du contenu, réagir à des événements…etc
Tenez par exemple, vous pouvez définir une fonction custom directement dans une page :
-- Additionner deux nombres
function adder(a, b)
return a + b
end
Et ensuite l’utiliser n’importe où dans votre wiki avec la syntaxe ${adder(5, 7)}. Vous pouvez créer des commandes personnalisées qui apparaissent aussi dans la palette de commandes (Ctrl+K ou Cmd+K) :
command.define {
name = "Insérer signature",
run = function()
local date = os.date("%Y-%m-%d")
editor.insertAtCursor("---\nÉcrit le " .. date, false, true)
end
}
Ou même des slash commands comme dans Notion, mais que vous codez vous-même :
slashCommand.define {
name = "todo",
run = function()
editor.insertAtCursor("- [ ] |^|", false, true)
end
}
Tapez /todo dans votre éditeur, et boum, ça insère une checkbox markdown avec le curseur au bon endroit. Vous voulez un compteur de mots qui s’affiche à chaque sauvegarde ? Un event listener comme ceci suffit :
event.listen {
name = "page:save",
run = function(e)
local content = editor.getText()
local word_count = select(2, content:gsub("%S+", ""))
editor.flashNotification("Nombre de mots : " .. word_count)
end
}
Même si ça fait bientôt 3 ans que c’est en dev, c’est encore un peu jeune et il y a d’ailleurs quelques limitations à connaître. Par exemple, y’a pas de gestion d’upload d’images pour l’instant (vous devez linker des images externes ou les placer manuellement dans le dossier), et comme c’est récent, l’écosystème de plugins n’est pas aussi fourni qu’Obsidian. Mais bon, quand vous pouvez coder vos propres fonctionnalités en Lua directement dans vos notes, la notion de “plugin” devient un peu inutile.
Alors plutôt que de vous expliquer encore pendant 10 paragraphes comment ça fonctionne, voici comment l’installer et tester vous-même.
Téléchargez d’abord le binaire qui correspond à votre OS (macOS, Linux, Windows)
en cliquant ici
.
Pour macOS et
Linux
, ouvrez votre terminal et tapez :
Pour Windows, créez un dossier mes-notes, puis lancez dans PowerShell :
.\silverbullet.exe mes-notes
Le serveur démarre alors sur le port 3000 par défaut. Ouvrez votre navigateur sur http://localhost:3000 et vous y êtes. Vous pouvez aussi l’installer en Progressive Web App (PWA) pour l’utiliser comme une vraie application desktop, même hors ligne.
Et si vous préférez Docker, c’est encore plus simple :
docker run -p 3000:3000 -v ~/mes-notes:/space ghcr.io/silverbulletmd/silverbullet
Ça fonctionne sur Intel et ARM (Raspberry Pi, Apple Silicon), donc vous pouvez l’héberger sur à peu près n’importe quoi.
Voilà, donc si vous voulez une note qui génère automatiquement un journal de vos tâches incomplètes, une page d’accueil qui affiche vos stats d’écriture du mois ou encore un système de tags auto-généré avec des filtres dynamiques, tout est possible ! Et tout ça en écrivant du Lua directement dans le navigateur, sans plugins chelous.
Une fois que vous aurez goûté à ça, vous verrez que revenir à des notes statiques sera trèèèès compliqué.
Merci à friendly_0day pour m’avoir fait découvrir
SilverBullet
!
Vous pensiez que Wikipedia était un havre de savoir libre et ouvert à tous ?
Détrompez-vous ! En Russie, le gouvernement vient de frapper un grand coup en clonant l’encyclopédie collaborative pour en faire une version légèrement différente, histoire de réécrire l’Histoire à sa sauce.
Fini Wikipedia, place à Ruviki ! Enfin quand je dis Ruviki, c’est en fait une version modifiée de Wikipedia en russe (Wikipedia RU) mais sans les articles qui dérangent. Bref, appelez ça comme vous voulez,
Vous pensiez que Wikipedia était un havre de savoir libre et ouvert à tous ?
Détrompez-vous ! En Russie, le gouvernement vient de frapper un grand coup en clonant l’encyclopédie collaborative pour en faire une version légèrement différente, histoire de réécrire l’Histoire à sa sauce.
Fini Wikipedia, place à Ruviki ! Enfin quand je dis Ruviki, c’est en fait une version modifiée de Wikipedia en russe (Wikipedia RU) mais sans les articles qui dérangent. Bref, appelez ça comme vous voulez, le principe reste le même : on prend l’encyclopédie, on vire tout ce qui nous plaît pas, et voilà, on a une Wikipedia sous stéroïdes made in Kremlin. Pratique.
Concrètement, ce projet Ruviki a été initié par Vladimir Medeyko, président de Wikimedia.ru (la version russe de la Wikimedia Foundation). Les articles sur les « agents étrangers » (comprenez tous ceux qui osent émettre une opinion sur le gouvernement sans être sponsorisés par Poutine himself), les scandales impliquant des représentants du gouvernement ou encore les rapports sur la torture dans les prisons russes ont comme par magie disparu ! Pouf ! Envolés les « détails » qui fâchent.
Mais le plus drôle dans l’histoire, c’est que même les articles sur des sujets à priori sans rapport y passent. Prenez par exemple l’article sur « 1984 » de George Orwell. Bizarrement, toute mention du « Ministère de la Vérité », l’institution chargée de la propagande et de la réécriture de l’Histoire dans le roman, s’est volatilisée de Ruviki. Étonnant, non ?
Et ne croyez pas que seuls quelques articles sont concernés. D’après une analyse du chercheur Constantine Konovalov, ce sont plus de 200 000 caractères qui ont été modifiés ou supprimés dans les articles sur la liberté d’expression, 150 000 sur les droits humains, 96 000 sur les prisonniers politiques et 71 000 sur la censure. Ça en fait de la réécriture !
Le plus ironique dans tout ça, c’est que les autorités russes présentent ce Ruviki comme une version « fiable » et « neutre » de Wikipedia. Ben voyons… C’est sûr que quand on vire tout ce qui nous arrange pas, ça devient vite plus « neutre ». Dans le genre révision historique de niveau olympique, on n’a pas fait mieux depuis l’invention du correcteur liquide.
Et comme si ça suffisait pas, la véritable Wikipedia en russe est désormais bannie en Russie. Circulez, y a plus rien à voir ! Seule la version tronquée made in Kremlin est autorisée. C’est ballot, les Russes vont devoir se contenter d’une réalité quelque peu… alternative.
Mais bon, après tout, c’est pas comme si la Russie était réputée pour sa transparence, sa liberté d’expression et son amour de la vérité vraie. Alors une encyclopédie sous contrôle étatique, c’est bien pratique pourj le gouvernement qui ne fera plus de nuits blanches en se demandant si un article compromettant va être publié.
La prochaine fois que vous consulterez Wikipedia, ayez une petite pensée pour nos amis Russes qui, eux, devront se contenter de la version caviardée… (et c’est pas du Beluga)