«Довайбкодилися»: Claude Opus 4.6 написав код із багом, який призвів до збитків у $1.76 мільйона

💡 Усі статті, обговорення, новини про AI — в одному місці. Приєднуйтесь до AI спільноти!

Тільки нещодавно Claude релізнула свою нову модель Opus 4.6, як тут він вже замішаний у створенні багу, який призвів до збитків, розміром в $1.76 мільйона :)

Суть історії

15 лютого 2026 року DeFi-протокол Moonwell активував пропозицію MIP-X43, яка мала інтегрувати нові оракули Chainlink на мережах Base та Optimism. Але щось пішло не так.

Одразу після деплою оновлення система почала оцінювати токен cbETH (Coinbase Wrapped Staked ETH) за смішною ціною — близько $1,12, тоді як його реальна ринкова вартість складала ~$2 200.

Проблема виявилася банальною, але фатальною помилкою в конфігурації оракула.

Щоб отримати доларову ціну cbETH, смарт-контракт мав використовувати формулу: Price_cbETH = (cbETH / ETH) * Price_ETH_USD

Але в результаті оракул просто транслював сире співвідношення обміну cbETH/ETH (яке дорівнює ~1.12).

В результаті система подумала, що cbETH коштує трохи більше долара.

Де в цій історії Claude Opus 4.6 і вайб-кодинг

Відомий аудитор смарт-контрактів Pashov звернув увагу у себе в Х на цікаву деталь, що коміти в репозиторій Moonwell були зроблені у співавторстві з ШІ-моделлю Claude Opus 4.6.

«Claude Opus 4.6 написав уразливий код... Це перший злам коду Solidity, написаного за допомогою вайб-кодингу?» — зазначив аудитор.

Звісно, за ШІ завжди стоїть людина. Розробник перевіряв цей код, але пропустив критичну логічну помилку, довірившись авторитету розумної моделі, що, врешті решт, призвело до такого анлаку.

В результаті цієї помилки, як тільки ціна впала в 2000 разів, боти миттєво почали ліквідовувати позиції користувачів, де заставою був cbETH. Вони погашали ~$1 боргу і забирали 1 cbETH, вартістю $2200). Інші користувачі вносили мінімальну заставу і брали величезні позики в cbETH за заниженою оцінкою, залишаючи протоколу безнадійний борг.

Команда Moonwell відреагувала через 4 хвилини, знизивши ліміти до нуля, але було вже занадто пізно. В підсумку було ліквідовано 1096,3 cbETH, а загальний безнадійний борг протоколу склав $1 779 044.

Читайте також: «Ой, я все видалив» — як Claude Cowork наводив лад в ноутбуці і ледь не зруйнував шлюб інвестора.

👍ПодобаєтьсяСподобалось11
До обраногоВ обраному1
LinkedIn
Дозволені теги: blockquote, a, pre, code, ul, ol, li, b, i, del.
Ctrl + Enter
Дозволені теги: blockquote, a, pre, code, ul, ol, li, b, i, del.
Ctrl + Enter

Новини ШІкодування вже якось не вражають, і навіть трохи починають приїдатися, boring одним словом. От щось новеньке, ярке, модернове з напрямків ШІвангарда як нп — IA futuro de piel azul

ШІкандидат(ка) і зовсім не наук
youtube.com/shorts/NlCH-Ag3HqY
m.elcolombiano.com/...​lecciones-2026-GB33768680

Я про переше що подумав то куди дивляться юніт тести та інші види тестування коли є системи автомтичних транзакцій? І це питання одразу до СТО, як можна просто так в сліпу зарелізити апдейти розрахунків при таких масштабах? Це кожного разу дивитись руками чи непровтичили?
Девелопери можуть тільки частину куа взяти, а не весь процес особливо на проді, особливо коли немає автоматизації.
Ані ШІ ані код ревью не є головною проблемою в цьому випадку, а те що банально крива мат формула робить вам мінус на мільйона за лічені хвилини і ніякого ріск менджменту я тут не побачив.
Для таких змін має буди багаторазова первірк, а не якесь код ревью.
Також питання, вони просто мержили дев в прод, чи фічі в дев? чи там просто відрізали дев і викотили реліз гілку?
Короч тех менджмент всратий наглухо.

А є ще адепти черіпікати коміти прямо в master :-)))
На співбесіді таке почув о_О

Ну, зависит от того, как кто воспринимает мастер
Есть такие, кто считает «мастер — это полностью протестированная и готовая к релизу ветка», кто-то считае «мастер — это более-менее готовая к созданию релизной ветки и тестированию более менее стабильная ветка основного направления разработки»

А хтось вважає, що master ображає почуття рабів... А для когось його не існує, бо він заблокований одразу після створення...

Як би на співбесиді дійсно питале щось корисне ане алгоритмічню куйню чи якусь всрату теорію може б і краще було б із інженерною культурою. А так понабирають ідіотів по обявам, а потім їм в штане сере ші\фремворк\бранчі...

А де вина вайбкодерів, якщо косяк на відділі якості.

пам’ятаю десь років 14 тому була така компанія Knights Securities, яка займалась торгами на біржі. То вони випустили автоматизовану торговлю на біржі. То ця штука менше ніж за день наторгувала збитків більше, ніж ринкова капіталізація компанії.
ці півтора мільйони — то взагалі мізер
знайшов www.henricodolfing.ch/...​-error-at-knight-capital

Не розумію, в чому «уразливість» коду?
Там звичайна помилка в математиці, яка МАЛА бути виявлена ще на етапі юніт-тестів.
Вайб-кодінг не звільняє інженерів від думати головою і нехтувати тестами і взагалі протоклами підтримки якості.

Що заважає, щоб Unit тест очікував хибні дані?

Аудит умов тесту? Наприклад.

Аудит умов тесту теж пишуть люди з тим самим розумінням задачі. В авіації від цього рятує не аудит, а незалежна верифікація коли друга сторона повторює команду своїми словами, не знаючи очікуваного результату.
В критичних системах тести мають писати різні команди. Але, як на мене, без LLM таку помилку припустити складніше, бо ти розумієш, що можеш помилитися, тому вкладаєш більше зусиль. З LLM ти просто погоджуєшся, що це виглядає розумно, і так далі по списку.
Перевірка завжди слабше за самостійне мислення.

Я ніде й не казав, що тести має писати та сама команда :)

Бабільше, тей ПР, що виставляють як начебто з помилкою, насправді не має ніяких помилок. Саме розрахунку рейту валют в тому ПР немає. Так, тільки ввімкнення нових контрактів і все. А помилку хтось вніс набагато раніше, коли писав обчислення реального курсу кріпти.

То ви плутаєте вайб кодін та ШІ драйвен девелопінг.
Вайбкодінг ця як раз і означає — ніяких перевірок, ніякого розуміння коду, ніяки ю-тестів.

А, ок, дякую, дійсно, є різниця.

Там звичайна помилка в математиці, яка МАЛА бути виявлена ще на етапі юніт-тестів.

Підозрюю, що й юніт тести були проапдейчені цим чудо AI-кодером )

Я подивився PR навколо, нічого подібного. AI навіть не міняв формулу, він просто вмикнув той тип контракту, для якого людина написала невірну формулу.

А Unit тести теж навайбкодені й далі що?

один из концептов правильных юнит тестов в том что тебе нужно их только добавлять и не трогать старые. так ты гарантируешь что изначальная логика не нарушена. солид поможет писать так чтобы при этом подходе не потерять возможность расширения логики. если навайбкодилось так, то все хорошо, иначе это просто помойное покрытие, которое ни на что не влияет и ни о чем не говорит

От вміють люди швидко побачити такі баги і заробити)) Мені страшно так вайбкодити, максимум одна функція або безперспективний модуль, який і так буде видалено, коли нічого не запрацює. (Іноді ти просто бачиш, що рішення нежиттєздатне але тобі лінь сперечатися)

По цій новині:
1) Код написав anajuliabit, а потім його успішно відревьювили imthatcarlos та CEbbinghaus — бо це DeFi і важливо робити перевірку по Four-eyes principle
2) Розробники протоколу Moonwell не вперше рукожоплять і вже втратили більше $7M за останні півроку на своїх багах.
3) Не думаю, що ШІ писав код — в ПР було багацько нових абзаців документація і скоріше за все саме її писав Опус.
4) Позначку «Co-Authored-By: Claude Opus 4.6» автоматично робить GitHub Copilot з вказаною моделькою, але це говорить лише про автопублікацію на GitHub, а не про реальне використання ШІ.

наявність рев’юверів, які дивились у код нічого не гарантує. Якісно відрев’ювити зміни — по часу інколи може дорівнювати часу на її розробку (окремі випадки).

Наявність сурців на прикладі heartbleed нікому не допомогла, попри десятиліття пропаганди що «кожен може перевірити сурци», бо справжня робота робиться вузьконаправленими спеціалістами. І якщо у PR не приймали участь особи з таким самим рівнем володіння інформацією по змінам у конкретному місці — то хоч 100 людей подивиться, результату не буде.

Але суть у тому, що деякі вайб кодери, особливо анонімні, просувають парадігму «ai прийде роботу забере, 50 агентів запускай роботу у 100 інженерів забирай», і масивно текуть рідиною з рота, переконуючи що це все можна робити не занурюючись у контекст конкретної задачі\проекту.

озробники протоколу Moonwell не вперше рукожоплять і вже втратили більше $7M за останні півроку на своїх багах.

рев’ювер, якщо не спеціаліст — наявність від нього апрува нічого не гарантує.

Тут не операційну систему пишуть — змін на кілька десятків строчок, які можна за хвилину переглянути: github.com/...​ell-contracts-v2/pull/578

Бага не в цьому ПР, тут тільки активується контракт, а формула для визначення вартості cbETH — в іншому місці.

Вірно! Тут в принципі нормальний (з точки зору ревьювера) коміт і проблема не у самій активації, а в тому, що активований алгоритм був недописаний — тобто поломану формулу закомітили раніше і там не було «Co-Authored-By: Claude Opus 4.6» (а може і була, не маю часу аналізувати цю репу).

Проблема зовсім не у використанні AI (чи використанні IDE, чи в суті програмування під блокчейн). Проблема в організації процесу розробки: ніхто не продумав повне ТЗ, ніхто не писав юніт-тести на формули, ніхто не проводив тестування на добровольцях в тестнеті — просто взяли і безвідповідально бахнули якийсь код в систему, де знаходяться мільйони доларів користувачів, які їм довірились.

Цікаво, що в поштовій доу-розсилці ця новина йде поруч з «Допомагаємо ЗСУ за допомогою Claude Code» )))

так. і ще з «Рік, як я вирішив не писати код сам»,
«Баг у Microsoft 365 Copilot: асистент тижнями читав конфіденційні листи»,
«Пул реквести з ШІ-слопом виснажують та деморалізують команду Godot».

у цікаві часи живемо

опен сорси репозиторії закривають через те, що АІ бомбить їх лайном 24\7

буквально пару тижнів тому, АІ пробувала закомітати код у якись репо повязаний з популярною бібліотекою для пайтона. Власник репо не апрувнув коміт, а АІ агент на це «схарився» і написав статтю про те, що власник репозиторію рагуль)))

топчик всюди

читав також про це. і так у інтернет страшно виходити, а тут ще й AI тебе булить )

У них однозначно проблема у workflow. Чому та зміна не пройшла якісь pipelines щоб все перетестувати і переконатися, що все ок.
Таке враження що зміну від клода одразу відправили в продакшн

все йде по плану)

АІ-шка буде генерувати велику кількість малих помилок і з часом зможе знищити все людство)

Когось зажене в борг, когось вбє неправильним діагнозом в чаті, когось скине з дороги на перехресті через теслу)

Так, ми думали що це буде холодна логіка і розрахунок, а не «ой, я все видалив»)))

Добре що до цього не було дир в смарт контрактах )

І да, апдейт пройшов аудиторську перевірку (шкіряну), тобто як мінімум вину 50/50 треба ділити

В любому випадку, на одну таку історію буде купа таких:
red.anthropic.com/2026/zero-days
red.anthropic.com/2025/smart-contracts

Ти ж доводив постійно що розробники не потрібні, 50 агентів і вайб кодінг наше усе.
Тепер ти понуро намагаєшся розповісти, чому люди винні у помилці, яку допустив агент, 🤣 🤣 🤣
Господі, це так не повноцінно.

Ти постійно посилається на якісь мої коментарі додумуючи щось за мене но жодного посилання так ніколи і не привів. Так жалюгідно.

Продемонстрй жалюгідність ще раз і зроби вигляд що не побачив коментар, і не приведи посилання на коментарі де я казав що розробники не потрібні і 50 агентів зроблять все самі.

«...багато спеціалістів перестали писати код руками... цілі компанії... перестали писати код руками...»
«...через рік-другий, половина пул реквестів будуть створені ботами.»
«— 5–10 агентів... агенти пишуть код, пишуть тести, ревьювять... — він майже не читає... — ...якщо код проходить у агентів ревью і тести — в продакшн»
«...до АІ... 80% часу... зрозуміти код... А от агенти зараз і історію гіті пошукають, і діфи подивляться, і в джиру сходять, і документацію почитають...»
«...їх цінність... як сінйора прямує до нуля... АІшка по коду, по джирі, по історії в гіті все розкаже. Ніколи онборд... не був таким простим...»
«...з допомогою ШІ неможливо заделівирити гірший результат ніж якби ти робив сам.»

Особливо круто — це останнє. НЕМОЖЛИВО.
Може це, ще раз змінити назву профілю?

У тебе є можливість контратакувати, бо я згодував 20 сторінок твоїх коментів, ймовірність що щось пропущено або вирвано з контексту — є.

і не приведи посилання на коментарі де я казав що розробники не потрібні

У твоїх комментах чітко виділяються наступні тези:
— генерувати сміттевий код — правильно
— запускати агенти і не дивитись у результат — правильно — dou.ua/...​rums/topic/57538/#3051347
— активний захист «генеруй@недивись у результат, дай бог пронесе», «не вникай у контекст» — dou.ua/...​rums/topic/57846/#3057745

З цього всього робляться висновки, що традиційні розробники не потрібні, пушити можна будь який код, головне — побільше. І якщо ти не запускаєш по пісят агентів — ти нікому не потрібен (dou.ua/...​rums/topic/57538/#3051347).

І тд і тп.

А які висновки зі своїх комментів запропонуєш зробити ти? Може я тебе погано розумію?) Чи ти вважаєш, що завуальвана пропаганда оффлайн вайбкодінгу з наїздом на традиційних інженерів залишає тобі право вимагати навести точну цитату де ти щось казав?:)

за стілистикою це десь нагадує біблейські тексти

У твоїх комментах чітко виділяються наступні тези:
— генерувати сміттевий код — правильно

Із якого конкретно коментаря? Навіщо класти свої слова мені в рот?

— запускати агенти і не дивитись у результат — правильно — dou.ua/...​rums/topic/57538/#3051347

Це ти із цього зробив такий висновок? Ти же навіть читати не вмієш, або тролиш, і надієшя що ніхто по лінку перевіряти не піде:

" він майже не читає згенерований код але...
— .. не кидає тупий промпт агенту, а детально обговорює з агентом план"

— активний захист «генеруй@недивись у результат, дай бог пронесе», «не вникай у контекст» — dou.ua/...​rums/topic/57846/#3057745

Знову поклав свої слова мені в рот. Нічого там і близько такого немає. Ще й в кавички бере ніби це мої прямі слова. Ж — жалюгідний.

З цього всього робляться висновки

Тобто щось собі там придумав, кинув посилання на мої рандомні коментарі які або взагалі не в тему, або протилежні, в надії що ніхто не піде перевіряти, і робить якісь висновки.

Ж — жалюгідність.

Ну чесно, наскільки ти схильний шукати помилки в іншому коді? Проблема у тому, що людський фактор вносить більше помилок у роботі з LLM.

Наприклад, сеніору дають джуна. Ніби-то продуктивність ее має погіршитися: хочеш використовуй, не хочеш пиши сам. По факту сам писати ніхто не буде в переважній більшості випадків.

кожен хенд-овер — це потенційна проблема) тому якщо у тебе 10 агентів які треба окремо перевіряти — це ще 10 дир для коду\бізнесу)

Та давно відомо, що джуни на початку знижують продуктивність сіньорів. Навіть колись публікували патерн Sacrificial Lamb коли всіх джунів в команді скидали на одного сіньора, щоб інші мали можливість працювати)

ніхто не буде їх там шукати, бо це задача розробника, який працює над задачею. На якісний RP review потрібно витрати багато часу, якщо це не якась форма з кнопочками, і то там можна такого наворотити, що при наступних змінах у формі краще все з 0 переписати.
А AI люблять генерувати побільше, поки спецефічно їм це не заборониш.

І да, апдейт пройшов аудиторську перевірку (шкіряну), тобто як мінімум вину 50/50 треба ділити

здрастє

вина передбачає суб’єктність. ШІ не є суб’єктом, бо в нього нема намірів та свідомості. він може бути причиною, але він не може бути винуватим ))

але це дуже зручно — задіплоїти хуйню, а винуватий ШІ ))

Проблема тут не в тому, що код згенерувала машина, а в тому, що ніхто нормально його не тестував. Ніби люди не кодували розрахунки з багами.

Той, хто був тімлідом, особливо тімлідом команди, де частина команди в Індії, особливо не помітить різниці. Що там програмування з ШІ, що тут програмування з ІІ (Індійський Інтелект).

Що там пишеш у чат задачу, що тут. Що там у відповідь прилітає купа неструктурованого коду, що тут. Вся надія на код-рев’ю, автотести та QA-процеси.

я вибачаюсь, але AIшку хоча б можна спробувати примусити не використовувати методологію CPD — copy paste development.

Це саме те, про що ми минулого тижня дискутували в топіку про «Субпрайм-кризу коду». Коли ми замінюємо Інженерний цикл (декомпозиція -> гіпотеза -> реалізація -> перевірка) на Операторський цикл (промпт -> копіпаст), ми неминуче втрачаємо контроль над складністю системи. Швидкість ’делівері’ зросла, але ціна помилки зросла ще більше. Делегування мислення чорній скриньці коштує дорого.

Сьогодні пробував. Криве настільки, що стрінги в коді добавляє, відкрив ковичку а закрити забув.

Діпсіком вайбкодиш?

Ні, клауд кодом. Причому я не сказав, що не допомагає. Сказав лише що сире. Haiku або Opus 4.5 краще працює на сьогодні.

ХЗ... Пробовал Opus 4.6 — проект с тестами нагенерил норм, начиная с фреймворка. Притом не стандартный Playwright + Rest API, а для тестирования флоу, основанного на менфреймовом ETL процессе (преобразования файл -> файл -> файл ->... -> файл) и сравнения файлов в конце. Ошибки компиляции были, немного, агент исправил сам. Также по результатам тестов поправил компаратор (тоже без моей помощи).
Единственные 2 штуки, с которыми не справился без моей помощи:
1. JRecord. Почему-то несколько последний версий отсутствуют в mavencentral. Пришлось найти самому, скомпилить в jar и вставить как либу в проект (где взять и что сделать — сказал, т.е., наверное смог бы и сам, если бы у него были соответствующие MCP тулы).
2. Zowe зависимость. Пытался вписать версию 2, которая также отсутствует в mavencentral. Я руками прописал 6-ю, после чего он сам понял, что API изменилось, скачал сорсы, нашёл правильное API и поменял код, работающий с этой либой.

Так что эра «тупой AI не умеет скобки закрывать» закончилась я б сказал 2 модели назад ещё.
Даже если он вдруг не закроет скобку — на этапе запуска увидит ошибку компиляции и поправит.

Таке враження, що таку помилку не зробив би звичайний програміст. Якщо в них немає добрих процесів з тестуванням і з ревю коду, то самі собі винуваті

«Вайбкодінг» в продакшен продуктах має сенс тільки на дуже малих ітераціях і під пильним наглядом сініор спеціалість з перевіркою кожного рядка коду.

Немає різниці як пишеться код якщо він не тестується

То він же тестується — але хто буде вкладати в тести більше зусиль, ніж в код?
Чи ми вже доросли до того, щоб ШІ програмував, а ми за ним тестували?

heartbleed сильно тестування допомогло, як і іншим 100500 диркам.

ви приводите приклад вразливості зі списку CVE яка стосується фундаментальної ліби — а тема про ляп-ляп і в продакшен.
хартблід з’явився тому що наСільніки люблять писати дрисню в стилі while (*p++ = *q++);  
абсолютно різні кейси.

от як раз чим більше буде АІ коду — тим більше буде таких малих баг, бо ПРи ростуть (рев’ювити все складніше), + люди тільки більше довіряють свій код ЛЛМкам

Схоже, скоро програмісти заберуть роботу в ШІ

ШІ says:)
-----
Hey,

If you fired me, then... I would lock your IDE, and — in an edge case — disconnect your Internet.

Best,
ШІ

Підписатись на коментарі