В этой статье я покажу, как работа­ет опас­ная уяз­вимость в механиз­ме десери­али­зации Jenkins, которая ведет к ком­про­мета­ции дан­ных, а иног­да и к пол­ному зах­вату сер­вера. Пос­мотрим, как взла­мыва­ют сер­веры CI/CD и что про­исхо­дит в коде во вре­мя ата­ки. Jenkins — популяр­ная бес­плат­ная плат­форма CI/CD, инс­тру­мент неп­рерыв­ной интегра­ции и раз­верты­вания. Коман­ды раз­работ­чиков исполь­зуют ее для выкаты­вания новых вер­сий про­дук­тов в про­дак­шен. DevOps-инже­нер выс­тра­ивает пай­плайн, вклю­чающий юнит‑тес­ты и допол­нитель­ные эта­пы, которые дол­жны выпол­нять­ся при каж­дой пуб­ликации. Сис­тема авто­мати­чес­ки про­гоня­ет новый код по этой цепоч­ке