cwbe coordinatez:
101
8526500
8584497
9123689
9123880

ABSOLUT
KYBERIA
permissions
you: r,
system: public
net: yes

neurons

stats|by_visit|by_K
source
tiamat
K|my_K|given_K
last
commanders
polls

total descendants::15
total children::3
8 ❤️


show[ 2 | 3] flat


https://ziman.functor.sk/files/discrepancies.csv

tu je zoznam vsetkych transakcii, kde su diskrepancie aspon 1.0K

discrepancy = balance - expected_balance
expected_balance = previous_balance ± amount

tam sa da vyfiltrovat, ktore su okolo Ganesu, ktore nezahrnaju ganesu atd. atd.




000001010852650008584497091236890912388009123956
Prospero
 Prospero      02.02.2024 - 07:05:28 (modif: 02.02.2024 - 10:54:48) [12K] , level: 1, UP   NEW !!CONTENT CHANGED!!
IMHO niekde okolo riadku 42, +- tri riadky

download

edit: got it ! ked som v predsilvestrovskom zmatku pred nultou K-party do addTransaction metody implementoval obmedzenie dane MAXIMAL_WALLET_AMOUNT, zaniesol som v bloku zacinajucom na riadku 42 nasledovnu chybu:


Popis chyby

V pripade ze niekto chcel dat K node cloveka ktoreho wallet vlastnil viac ako je povolenych MAXIMAL_WALLET_AMOUNT (e.g. blurec ci maniac), dane K sa automaticky presmeruje na Ganeshu. Takze sa v riadku 44 vykona $receptor_id=GANESH_ID.

Bug nastal v tom, že v bloku sa sice zmenila hodnota premennej $receptor_id, ale nie zodpovedajuce hodnoty premennych $(pre|post)transaction_receptor_wallet_amount. Tie teda zostala na hodnote povodneho adresata (t.j. napr. blureca ci maniaca). O par riadkov sa potom vykona kriticky atomicky insert do ledgeru s tou pokazenou hodnotou.


Q.E.D.

Transakciou 3270540 bolo udelene 🪶 maniacovej node "Re: ssh snake" (node_id=9118230). Transakcia 3270540 obsahuje memo "9118230 owned by 192". Na maniacovom (user_id=192) receptor_wallete je pred transakciou 137670 🦆. Po vykonani tej transakcie je take iste mnozstvo 🦆 aj na Ganeshovom wallete.


Fix

Pridat na riadok 45
$receptor_wallet_amount=Kybchain::getWalletAmount(GANESH_ID);
https://git.kyberia.sk/kyberia/kyberia2/commit/16eb2d01575d9b346ba41dd803cd3d3ee6038ad9


Moral of the story

Hodinu pred K-party sa jadro ledgeru neprogramuje, obzvlast ked do toho skacu Zena, Matka, deti a pudel.


00000101085265000858449709123689091238800912395609124558
_W1 22/7
 _W1 22/7      05.02.2024 - 09:07:18 (modif: 05.02.2024 - 09:07:34) [1K] , level: 2, UP   NEW !!CONTENT CHANGED!!
chapem, ze to asi z kapacitnych dovodov nebude uplne realisticke, ale ako quality engineerovi mi to neda:
nechces okolo toho napisat nejake unit testy? :)

0000010108526500085844970912368909123880091239560912455809124817
Prospero
 Prospero      05.02.2024 - 22:15:10 (modif: 05.02.2024 - 22:47:45), level: 3, UP   NEW !!CONTENT CHANGED!!
nechcem, ale ked mi raz niekto vysvetli co je to "unit test", mozno uznam ze by bolo dobre tak ucinit ;)

edit: vtip

00000101085265000858449709123689091238800912395609124039
mj
 mj      02.02.2024 - 12:30:33 [4K] , level: 2, UP   NEW
je to náhoda, že to bolo na riadku 42 ? :)

0000010108526500085844970912368909123880091239560912403909124111
Prospero
 Prospero      02.02.2024 - 15:42:46 , level: 3, UP   NEW
ved toto...

00000101085265000858449709123689091238800912395609123993
Mr. Darcy
 Mr. Darcy      02.02.2024 - 09:44:23 [1K] , level: 2, UP   NEW
mam chut do mema napisat nejakeho fajneho bobby tablesa a dufam ze to niekto spravi za mna, transakcie su tu asi najmensi problem

0000010108526500085844970912368909123880091239560912399309124005
Prospero
 Prospero      02.02.2024 - 10:28:41 [1K] , level: 3, UP   NEW
Vdaka za upriamenie pozornosti na pripadny cross-side scripting bug.
Fixnute, commitnute, pushnute a na znak vďaky aj jedna symbolická kačička tvojim smerom letí.

00000101085265000858449709123689091238800912395609123989
ziman
 ziman      02.02.2024 - 09:26:17 , level: 2, UP   NEW
Nebude v tom stale race? Pretoze medzi getWalletAmount a insertom sa mohol cielovy ucet zmenit, ak to teda cele nie je v DB transakcii.

0000010108526500085844970912368909123880091239560912398909124009
Prospero
 Prospero      02.02.2024 - 10:44:25 , level: 3, UP   NEW
Tak nejake race conditions tam mozno este budu, takze obalit to cele do START TRANSACTION / COMMIT by nebolo naskodu.

Ale vzhladom ze su tie function cally od seba vzdialene par mikrosekund, nemyslim ze by to bolo ta zucasneho stavu exploitnutelne.

000001010852650008584497091236890912388009123956091239890912400909124153
roro
 roro      02.02.2024 - 18:40:09 , level: 4, UP   NEW
naah, poriadne zadrotuj, transaction

00000101085265000858449709123689091238800912395609123988
bloody
 bloody      02.02.2024 - 09:26:01 , level: 2, UP   NEW
viem ze som to nenasiel ale keby ho nikto nechcel vezmem to steniatko toho pudla co bol slubeny ako odmena

0000010108526500085844970912368909123880091239560912398809124037
Prospero
 Prospero      02.02.2024 - 12:24:51 (modif: 02.02.2024 - 12:25:37), level: 3, UP   NEW !!CONTENT CHANGED!!
OK, evidujem. Júni teraz práve prvýkrát hára takže ak mi nebodaj utečie a nejaký callejero odveďla si ju ťapne tak nemožno vylúčiť že na šťeňatá bude zamiesené už čoskoro. Ale ináč myslím že ešte predsalen rok či dva počkáme, partnera náležite vyberieme atď.

Ale keď bude ťarchavá, ozvem sa. Arabský púštny pudel alias piešťanský drevokocúr je prekliate učenlivá, hravá a rozkošná šelma.

000001010852650008584497091236890912388009123956091239880912403709124067
ziman
 ziman      02.02.2024 - 13:32:53 , level: 4, UP   NEW
nunununu :)

000001010852650008584497091236890912388009123894
Prospero
 Prospero      01.02.2024 - 20:16:18 (modif: 01.02.2024 - 20:16:32), level: 1, UP   NEW !!CONTENT CHANGED!!
Takze zda sa ze Tebou pozorovane diskrepancie mozno rozdelit do styroch tried:

1) nezrovnalosti v seeding transakciach - vsetko po riadok 3720 - zanedbatelne mnozstva, myslim ze mozeme odignorovat

2) situacia kedy recipient == sender ... tam ziadna diskrepancia nieje kedze balance == previous_balance, tu je Tvoja analyza prilis prisna ...

3) ked transakcia typu P nasleduje po transakcii typu D ... tam sa tiez zda ze je Tvoja analyza prilis prisna kedze previous_balance riadku 1 == balance riadku 2

4) od riadku 3844 (cca od transakcie 3247442) transakcie typu K kde receptorom je Ganes - tam je zjavne bug ktory treba najst a identifikovat ale dobra sprava je ze sa tyka len bota

000001010852650008584497091236890912388009123889
Prospero
 Prospero      01.02.2024 - 19:58:50 , level: 1, UP   NEW
Ahoj, fajna analyza, vdaka. Ale napr. transakcia 252864 ziadnu diskrepanciu nevykazuje kedze som v nej testoval ako bude reagovat give ked sender == receiver a balance sa v tom pripade naozaj rovna expected_balance.

Jednu vec co som zabudol povedat je, ze ked sa realizuje transakcia, informacia o hodnotach na wallete sa berie z najaktualnejsieho riadku kde sa dany sender (resp. recipient) vyskytol