Skip to content

Releases

v0.1.11

Choose a tag to compare

@github-actions github-actions released this 14 Nov 10:31
8a379f1
0.1.11: własny audyt wydanej wersji, siedem znalezisk, w tym trzy obe…

v0.1.10

Choose a tag to compare

@github-actions github-actions released this 04 Sep 22:42
0.1.10 — reszta zewnętrznej recenzji: katalog pod listą dozwoloną, TL…

v0.1.9

Choose a tag to compare

@github-actions github-actions released this 18 Aug 13:48
0.1.9 — naprawa z 0.1.8 miała obejście na jedno słowo

SELECT repeat(repeat(repeat(chr(120),1000),1000),1000) dawało dokładnie ten sam
plan gigabajtowy co wersja pisana literałem. chr(120) jest wywołaniem funkcji,
więc estymator rozmiaru z 0.1.8 nie umiał go zmierzyć i poddawał się, a poddanie
się znaczyło przepuszczenie.

Znalezione w kilkanaście minut po wydaniu, przez sprawdzenie OPUBLIKOWANEJ wersji
przez npx z czystego kontenera zamiast zaufania lokalnej budowie.

Dopisanie chr do listy zaprosiłoby md5, potem upper, potem następne. Reguła jest
teraz ta sama, której używa PostgreSQL, decydując o zwijaniu: czy wyrażenie jest
stałe. Stała jednostka o nieodczytywalnym rozmiarze liczy się jako jeden bajt
i jest mnożona; jednostka z kolumny zostaje nietknięta, bo planista jej nie zwinie.

148 testów jednostkowych, 312 akceptacyjnych, 121 przypadków korpusu,
600 tys. mutacji fuzzera, 11 kontroli dokumentacyjnych.

v0.1.8

Choose a tag to compare

@github-actions github-actions released this 18 Aug 12:32
0.1.8 — wydanie bezpieczeństwa

Sześć obejść obecnych w 0.1.7, znalezionych przez zewnętrzną recenzję, każde
odtworzone na działającym serwerze przed naprawą.

Najpoważniejsze nie wymaga żadnych uprawnień: złączenie klauzulą USING po
zamaskowanej kolumnie było sprawnym oraklem równościowym. Cztery obejścia
naprawione dzień wcześniej wymagały superużytkownika, to działa dla zwykłej roli
tylko-do-odczytu, którą sami zalecamy.

Pozostałe: db_is_local porównujący podciąg całego adresu, przez co zdalna baza
mogła uchodzić za lokalną i pomijać TLS; orakl na strukturę zakazanego schematu
dwiema drogami; X-Forwarded-For czytany od lewej, czyli od strony klienta, przez
co oba limity dawały się obejść nagłówkiem; reset limitu przez zapełnienie mapy;
fail-open strażnika kosztu przy nieczytelnym planie.

Poprawiony też opis zwijania stałych: 49 bajtów SQL kosztuje backend PostgreSQL
5,9 GB pamięci i 13,7 s przy pięciosekundowym limicie czasu, który tego nie
przerywa. Wzrost jest mnożny w głębokości zagnieżdżenia, a nie liniowy w stałej.

146 testów jednostkowych, 312 akceptacyjnych, 117 przypadków korpusu
adwersarialnego, 600 tys. mutacji fuzzera, 11 kontroli dokumentacyjnych.

v0.1.7

Choose a tag to compare

@github-actions github-actions released this 18 Aug 06:38
0.1.7 — sześć dziur w strażniku i dwanaście fałszywych zdań o kodzie

Poprawki bezpieczeństwa, wszystkie dowiedzione eksperymentalnie na żywym serwerze,
nie wydedukowane:

- cztery obejścia REDAKCJI, wszystkie omijające nazwy kolumn zamiast je przebierać:
  get_raw_page (8192 bajty strony z wartościami w jawnej postaci), pg_stats
  (statystyki planisty trzymają prawdziwe wartości, a zapytanie nie musi wymieniać
  kolumny), pg_toast (długie wartości mieszkają poza wierszem) i pg_largeobject;
- zapisy przez rozszerzenia, których lista blokad nie widziała, bo rozumuje
  o przestrzeni katalogu: cron.schedule mogło zaplanować DROP TABLE na później,
  drop_chunks kasuje dane, pglogical.create_subscription ustawia replikację gdzie
  indziej, a TimescaleDB i PostGIS instalują się wprost do public.

Wzorzec, który to zjednoczył: filtr kolumnowy chroni kolumny, więc wszystko, co
czyta POD kolumnami, jest poza jego obietnicą.

Instalacja jednym kliknięciem nie wystartowałaby na Windowsie: manifest wskazywał
plik bez rozszerzenia .exe, a oficjalny walidator schematu tego nie widzi.

Binarka schodzi z 18,9 do 9,2 MB. Projekt nigdy nie miał ustawionego profilu
release, więc do każdego użytkownika szło ponad pięć megabajtów symboli
debugowania.

Dwanaście twierdzeń o tym kodzie było fałszywych i zostało zmierzonych na nowo,
z podaniem metody: liczba pobrań, rozmiar binarki, pamięć, narzut na zapytanie,
liczba przypadków testowych, obciążenie i pomyłka o jedną rewizję w sprawie samej
specyfikacji MCP.

Jedna granica NIE została zamknięta i jest nazwana w THREAT_MODEL: strażnik kosztu
jest najdroższą częścią żądania, bo EXPLAIN VERBOSE wypisuje stałą zwiniętą przez
planistę. Trzy naprawy sprawdzone i każda psuła inną kontrolę.

Pięć nowych bram pilnuje tych klas błędów, każda sprawdzona przez zmuszenie jej do
zapalenia się na fałszu.

131 testów jednostkowych, 290 akceptacyjnych, 108 przypadków korpusu
adwersarialnego, 600 tys. mutacji fuzzera, 11 kontroli dokumentacyjnych.

v0.1.6

Choose a tag to compare

@github-actions github-actions released this 15 Aug 13:35
0.1.6 — serwer daje się obejrzeć

Dwa błędy znalezione 15.08 przez pierwsze obce środowisko, które uruchomiło ten
serwer. Oba tej samej natury: serwer był wrogi wobec inspekcji.

- MCP_PROXY_DEBUG od mcp-proxy nie zabija już startu; literówka w naszym
  ustawieniu dalej kończy kodem 2.
- resources/list przy nieodpowiadającej bazie zwraca pustą listę z powodem
  w _meta zamiast błędu protokołu.

Bramy: 113 testów, 280 przypadków akceptacyjnych, CI zielone w 16 zadaniach.

v0.1.5

Choose a tag to compare

@github-actions github-actions released this 09 Aug 22:41
0.1.5 — komplet reguł rejestru wyczytany ze źródła, nie odkrywany po …

v0.1.4

Choose a tag to compare

@github-actions github-actions released this 09 Aug 22:25
0.1.4 — trzy dowody własności, których wymaga rejestr MCP

- mcpName w opublikowanej paczce npm (na tym padła 0.1.3)
- LABEL io.modelcontextprotocol.server.name na obrazie OCI
- kontrola wszystkich trzech znaczników przy każdym commicie

v0.1.3

Choose a tag to compare

@github-actions github-actions released this 09 Aug 21:37
0.1.3 — wpis do rejestru MCP, którego odmówiła v0.1.2, plus dwie wady…

v0.1.2

Choose a tag to compare

@github-actions github-actions released this 09 Aug 20:45
Actions pinned to commits; release registers with the MCP registry