Mga kapakyasan sa mga sistema sa pagtukod tungod sa mga pagbag-o sa mga checksum sa archive sa GitHub

Gibag-o sa GitHub ang paagi sa paghimo niini nga awtomatiko nga namugna nga ".tar.gz" ug ".tgz" nga mga archive sa mga panid sa pagpagawas, nga misangpot sa mga pagbag-o sa ilang mga checksum ug daghang mga kapakyasan sa mga awtomatikong sistema sa pagtukod nga nagsusi sa mga archive nga na-download gikan sa GitHub batok sa mga nauna aron makumpirma ang integridad .gitipigan nga mga checksum, pananglitan, gibutang sa metadata sa pakete o sa mga script sa paghimo.

Sugod sa pagpagawas sa 2.38, ang Git toolkit naglakip sa usa ka built-in nga pagpatuman sa gzip pinaagi sa default, nga nagpaposible sa paghiusa sa suporta alang niini nga pamaagi sa compression sa mga operating system ug pagpalambo sa performance sa paghimo sa archive. Gikuha sa GitHub ang pagbag-o pagkahuman gi-update ang bersyon sa git sa imprastraktura niini. Ang problema gipahinabo sa kamatuoran nga ang mga compressed archive nga namugna sa built-in nga zlib-based gzip nga pagpatuman kay binary nga lahi sa mga archive nga gimugna sa gzip utility, nga miresulta sa lain-laing checksums para sa mga archive nga gihimo sa lain-laing bersyon sa git sa dihang gipatuman ang "git archive" nga sugo.

Tungod niini, pagkahuman sa pag-update sa git sa GitHub, ang gamay nga lainlaing mga archive nagsugod nga gipakita sa mga panid sa pagpagawas, nga wala makapasar sa pag-verify gamit ang daan nga mga checksum. Ang problema nagpakita sa iyang kaugalingon sa lain-laing mga sistema sa pagtukod, padayon nga mga sistema sa panagsama, ug mga himan alang sa pagtukod og mga pakete gikan sa source code. Pananglitan, ang asembliya sa mga 5800 nga FreeBSD port, ang mga source code nga gi-download gikan sa GitHub, nabuak.

Agig tubag sa mga inisyal nga reklamo bahin sa mga glitches, ang GitHub una nga gikutlo ang kamatuoran nga ang mga permanente nga checksum alang sa mga archive wala gyud garantiya. Pagkahuman gipakita nga daghang trabaho ang kinahanglan aron ma-update ang metadata sa lainlaing mga ekosistema aron mapasig-uli ang pagpaandar sa naapektuhan nga mga sistema sa pagtukod, giusab sa mga representante sa GitHub ang ilang mga hunahuna, gibalik ang pagbag-o ug gibalik ang daan nga pamaagi sa paghimo og mga archive.

Ang mga nag-develop sa Git wala pa makahimo og desisyon ug naghisgut lamang sa posible nga mga aksyon. Ang mga opsyon nga gikonsiderar naglakip sa pagbalik sa paggamit sa default gzip utility; pagdugang sa "--stable" nga bandila aron mapadayon ang pagkaangay sa daan nga mga archive; pagsumpay sa built-in nga pagpatuman sa usa ka bulag nga archive format; gamit ang gzip utility para sa daan nga mga commit ug ang inline nga pagpatuman para sa mga commit sugod sa usa ka petsa; paggarantiya sa kalig-on sa format alang lamang sa wala ma-compress nga mga archive.

Ang kalisud sa paghimo og desisyon gipatin-aw sa kamatuoran nga ang pagbalik sa usa ka tawag sa usa ka eksternal nga gamit dili hingpit nga makasulbad sa problema sa checksum immutability, tungod kay ang usa ka pagbag-o sa external gzip nga programa mahimo usab nga mosangpot sa usa ka pagbag-o sa archive format. Sa pagkakaron, usa ka hugpong sa mga patch ang gisugyot alang sa pagrepaso nga nagbalik sa daan nga kinaiya pinaagi sa default (pagtawag sa usa ka eksternal nga gzip utility) ug naggamit sa built-in nga pagpatuman kung wala ang usa ka gzip utility sa sistema. Ang mga patches nagdugang usab sa dokumentasyon sa usa ka paghisgot nga ang kalig-on sa "git archive" nga output dili garantiya ug ang format mahimong mausab sa umaabot.

Source: opennet.ru

Idugang sa usa ka comment