{"id":834,"date":"2026-10-24T09:22:36","date_gmt":"2026-10-24T09:22:36","guid":{"rendered":"https:\/\/techparkcyprus.com\/?p=834"},"modified":"2026-10-26T06:24:03","modified_gmt":"2026-10-26T06:24:03","slug":"ruby-3-3-13-3-4-12-ve-4-0-9-icin-guvenlik-guncellemeleri-yayimlandi","status":"publish","type":"post","link":"https:\/\/techparkcyprus.com\/index.php\/2026\/10\/24\/ruby-3-3-13-3-4-12-ve-4-0-9-icin-guvenlik-guncellemeleri-yayimlandi\/","title":{"rendered":"Ruby 3.3.13, 3.4.12 ve 4.0.9 i\u00e7in g\u00fcvenlik g\u00fcncellemeleri yay\u0131mland\u0131"},"content":{"rendered":"\n<style>\n#tp-ruby-2026{--tp-ink:#18232e;--tp-muted:#697584;--tp-line:#e7eaf0;--tp-orange:#ff9b00;--tp-orange-soft:#fff6e8;--tp-panel:#f7f8fa;--tp-blue:#17b5d8;--tp-card:#fff;font-family:Roboto,Arial,Helvetica,sans-serif;color:var(--tp-ink);background:#fff;width:100%;line-height:1.74;font-size:16px;overflow-wrap:break-word}\n#tp-ruby-2026 *,#tp-ruby-2026 *::before,#tp-ruby-2026 *::after{box-sizing:border-box}\n#tp-ruby-2026 a{color:inherit;text-decoration:none;transition:color .2s ease,background .2s ease,border-color .2s ease,transform .2s ease}\n#tp-ruby-2026 a:focus-visible,#tp-ruby-2026 summary:focus-visible{outline:3px solid var(--tp-orange);outline-offset:4px}\n#tp-ruby-2026 .tp-shell{width:min(1180px,calc(100% - 48px));margin-inline:auto}\n#tp-ruby-2026 .tp-hero{background:radial-gradient(circle at 88% 17%,rgba(255,155,0,.075),transparent 26%),linear-gradient(115deg,#fff 45%,#fbfcfd 100%);border-bottom:1px solid var(--tp-line);padding:75px 0 62px;overflow:hidden}\n#tp-ruby-2026 .tp-hero-grid{display:grid;grid-template-columns:minmax(0,1.13fr) minmax(350px,.87fr);align-items:center;gap:clamp(36px,6vw,85px)}\n#tp-ruby-2026 .tp-eyebrow{display:flex;align-items:center;gap:11px;font-size:11px;font-weight:800;letter-spacing:.17em;text-transform:uppercase;color:#677281;line-height:1.5}\n#tp-ruby-2026 .tp-dot{display:inline-block;height:8px;width:8px;flex-shrink:0;border-radius:50%;background:var(--tp-orange)}\n#tp-ruby-2026 .tp-hero h1{font-size:clamp(34px,3.5vw,55px);line-height:1.14;letter-spacing:-.046em;font-weight:800;margin:22px 0 23px;color:#17222e}\n#tp-ruby-2026 .tp-accent{color:#dc8500}\n#tp-ruby-2026 .tp-deck{font-size:17px;line-height:1.82;color:#667280;max-width:610px;margin:0 0 25px}\n#tp-ruby-2026 .tp-meta{display:flex;flex-wrap:wrap;align-items:center;gap:9px 14px;font-size:12px;color:#76818f;font-weight:600}\n#tp-ruby-2026 .tp-meta i{width:3px;height:3px;border-radius:50%;background:#b9c2cb;display:inline-block}\n#tp-ruby-2026 .tp-hero-visual{position:relative;background:#fff;border:1px solid #e8eaf0;border-radius:20px;padding:25px;box-shadow:0 28px 65px rgba(19,36,54,.065);min-width:0}\n#tp-ruby-2026 .tp-hero-visual::before{content:\"\";position:absolute;z-index:0;width:118px;height:118px;border:24px solid rgba(255,155,0,.095);border-radius:50%;top:-33px;right:-28px;pointer-events:none}\n#tp-ruby-2026 .tp-visual-top{display:flex;align-items:center;justify-content:space-between;gap:15px;position:relative;z-index:1;border-bottom:1px solid var(--tp-line);padding-bottom:20px;margin-bottom:15px}\n#tp-ruby-2026 .tp-node-mark{width:45px;height:45px;background:#17232d;color:#fff;border-radius:13px;display:grid;place-items:center;font-weight:900;font-size:19px;letter-spacing:-.09em}\n#tp-ruby-2026 .tp-mini-eyebrow{font-size:10px;letter-spacing:.13em;color:#87909d;font-weight:800;text-transform:uppercase}\n#tp-ruby-2026 .tp-visual-title{font-size:16px;font-weight:800;letter-spacing:-.025em;line-height:1.5}\n#tp-ruby-2026 .tp-signal{width:9px;height:9px;border-radius:50%;background:var(--tp-orange);box-shadow:0 0 0 5px rgba(255,155,0,.12)}\n#tp-ruby-2026 .tp-release-list{display:grid;gap:8px;position:relative;z-index:1}\n#tp-ruby-2026 .tp-release{display:flex;align-items:center;justify-content:space-between;gap:12px;background:#f9fafb;border:1px solid #f0f1f4;border-radius:10px;padding:13px 14px}\n#tp-ruby-2026 .tp-release b{display:block;font-size:13px;line-height:1.2;font-weight:800}\n#tp-ruby-2026 .tp-release small{display:block;color:#8a949f;font-size:11px;margin-top:4px}\n#tp-ruby-2026 .tp-version{white-space:nowrap;font-weight:800;font-size:14px;color:#303b46;font-variant-numeric:tabular-nums}\n#tp-ruby-2026 .tp-version em{font-style:normal;font-weight:800;font-size:10px;color:#bd7400;background:#fff2dc;border:1px solid #ffe5b6;border-radius:5px;margin-left:5px;padding:3px 5px}\n#tp-ruby-2026 .tp-visual-foot{display:flex;align-items:center;justify-content:space-between;gap:8px;padding-top:18px;margin-top:4px;font-size:11px;color:#7c8791}\n#tp-ruby-2026 .tp-visual-foot strong{font-size:11px;color:#a46100;font-weight:700}\n#tp-ruby-2026 .tp-article-grid{display:grid;grid-template-columns:220px minmax(0,1fr);gap:clamp(34px,5vw,76px);padding-top:64px;padding-bottom:65px;align-items:start}\n#tp-ruby-2026 .tp-sidebar{position:sticky;top:100px;border-left:1px solid var(--tp-line);padding:8px 0 6px 21px}\n#tp-ruby-2026 .tp-sidebar-title{font-size:11px;letter-spacing:.15em;text-transform:uppercase;color:#919aa5;font-weight:800;margin:0 0 18px}\n#tp-ruby-2026 .tp-sidebar a{display:block;font-size:13px;color:#727e8b;margin:0 0 13px;line-height:1.52;font-weight:600}\n#tp-ruby-2026 .tp-sidebar a:hover{color:#d88400}\n#tp-ruby-2026 .tp-sidebar .tp-source-chip{display:flex;align-items:center;gap:8px;border-top:1px solid var(--tp-line);margin-top:25px;padding-top:21px;color:#4e5e6c;font-weight:700}\n#tp-ruby-2026 .tp-main{min-width:0;max-width:840px}\n#tp-ruby-2026 .tp-main p{margin:0 0 18px;color:#5c6977;font-size:15.5px;line-height:1.89}\n#tp-ruby-2026 .tp-main p strong{color:#263442;font-weight:700}\n#tp-ruby-2026 .tp-intro{padding:24px 27px;border-radius:13px;border:1px solid #ffe7c3;background:linear-gradient(90deg,#fff9f0 0%,#fff 100%);margin:0 0 43px}\n#tp-ruby-2026 .tp-intro p{margin:0;font-size:16px;color:#455261}\n#tp-ruby-2026 .tp-section{scroll-margin-top:35px;margin-top:53px}\n#tp-ruby-2026 .tp-section:first-of-type{margin-top:0}\n#tp-ruby-2026 .tp-kicker{font-size:11px;line-height:1.3;color:#c87e10;font-weight:800;letter-spacing:.14em;text-transform:uppercase;margin:0 0 11px}\n#tp-ruby-2026 .tp-main h2{font-size:clamp(24px,2.4vw,33px);line-height:1.22;letter-spacing:-.035em;font-weight:800;color:#1c2834;margin:0 0 18px}\n#tp-ruby-2026 .tp-main h3{font-size:18px;line-height:1.4;letter-spacing:-.012em;font-weight:800;color:#24313c;margin:0 0 9px}\n#tp-ruby-2026 .tp-stats{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:11px;margin:26px 0 28px}\n#tp-ruby-2026 .tp-stat{border:1px solid #eceff2;border-radius:12px;background:#fff;padding:20px 19px;min-height:113px}\n#tp-ruby-2026 .tp-stat strong{display:block;font-size:33px;letter-spacing:-.055em;font-weight:800;color:#192632;line-height:1.15}\n#tp-ruby-2026 .tp-stat strong span{color:#e59218}\n#tp-ruby-2026 .tp-stat small{display:block;font-size:12px;margin-top:10px;color:#75818d;line-height:1.5}\n#tp-ruby-2026 .tp-versions{display:grid;grid-template-columns:repeat(3,minmax(0,1fr));gap:12px;margin:24px 0 17px}\n#tp-ruby-2026 .tp-ver-card{border:1px solid #e7eaf0;background:#fff;border-radius:13px;padding:20px 16px;min-width:0;transition:transform .2s ease,box-shadow .2s ease}\n#tp-ruby-2026 .tp-ver-card:hover{transform:translateY(-3px);box-shadow:0 12px 28px rgba(25,42,60,.06)}\n#tp-ruby-2026 .tp-ver-card small{display:block;color:#8994a0;font-size:11px;text-transform:uppercase;letter-spacing:.08em;font-weight:700}\n#tp-ruby-2026 .tp-ver-card strong{display:block;font-size:25px;letter-spacing:-.035em;color:#1b2733;margin-top:7px;white-space:nowrap}\n#tp-ruby-2026 .tp-ver-card span{display:inline-block;padding:3px 9px;background:#f4f6f8;border-radius:5px;font-size:11px;color:#687584;margin-top:9px}\n#tp-ruby-2026 .tp-ver-card a{display:inline-flex;align-items:center;margin-top:18px;padding-bottom:2px;border-bottom:1px solid #e3b46c;font-size:12px;font-weight:700;color:#9a640c}\n#tp-ruby-2026 .tp-ver-card a:hover{color:#794900;border-bottom-color:#794900}\n#tp-ruby-2026 .tp-note{font-size:12px!important;color:#89939e!important;line-height:1.68!important;margin:12px 0 0!important}\n#tp-ruby-2026 .tp-featured-risk{border:1px solid #f1d8b2;border-radius:14px;background:#fffcf8;padding:24px 25px;margin:24px 0 14px}\n#tp-ruby-2026 .tp-risk-head{display:flex;align-items:center;gap:10px;flex-wrap:wrap;margin-bottom:12px}\n#tp-ruby-2026 .tp-risk-label{background:#fff0d8;border-radius:5px;color:#9d6000;font-size:10px;font-weight:800;letter-spacing:.05em;padding:5px 8px}\n#tp-ruby-2026 .tp-cve{font-family:ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;color:#8c6335;font-size:11px;overflow-wrap:anywhere}\n#tp-ruby-2026 .tp-featured-risk h3{font-size:20px;margin:0 0 9px}\n#tp-ruby-2026 .tp-featured-risk p{margin:0;font-size:14.5px}\n#tp-ruby-2026 .tp-risk-grid{display:grid;grid-template-columns:1fr 1fr;gap:11px;margin-top:12px}\n#tp-ruby-2026 .tp-risk-card{border:1px solid #e9edf0;background:#fff;border-radius:12px;padding:20px}\n#tp-ruby-2026 .tp-risk-card .tp-cve{display:block;margin-bottom:8px}\n#tp-ruby-2026 .tp-risk-card h3{font-size:16px;margin-bottom:8px}\n#tp-ruby-2026 .tp-risk-card p{font-size:13.5px;margin:0;line-height:1.72}\n#tp-ruby-2026 .tp-bullets{margin:22px 0 0;padding:0;list-style:none;display:grid;gap:12px}\n#tp-ruby-2026 .tp-bullets li{display:flex;align-items:flex-start;gap:11px;border-bottom:1px solid #eff1f4;padding-bottom:12px;color:#596674;font-size:14.5px;line-height:1.8}\n#tp-ruby-2026 .tp-bullets li:last-child{border-bottom:0;padding-bottom:0}\n#tp-ruby-2026 .tp-list-mark{flex-shrink:0;margin-top:10px;width:7px;height:7px;background:#ffc46c;border:1px solid #f8ac33;border-radius:50%}\n#tp-ruby-2026 .tp-bullets code,#tp-ruby-2026 p code{background:#f3f5f7;color:#364354;border-radius:4px;padding:2px 5px;font-size:.88em;overflow-wrap:anywhere}\n#tp-ruby-2026 .tp-soft-banner{border:1px solid #e7ebef;background:#f8fafb;border-radius:12px;padding:20px 23px;margin-top:20px}\n#tp-ruby-2026 .tp-soft-banner p{font-size:14px;margin:0}\n#tp-ruby-2026 .tp-steps{display:grid;gap:16px;margin:27px 0}\n#tp-ruby-2026 .tp-step{display:grid;grid-template-columns:42px 1fr;gap:15px;align-items:start}\n#tp-ruby-2026 .tp-step-num{width:40px;height:40px;border-radius:11px;background:#fff4e3;border:1px solid #ffebc9;color:#bd7609;display:grid;place-items:center;font-size:13px;font-weight:800}\n#tp-ruby-2026 .tp-step h3{margin:1px 0 5px;font-size:16px}\n#tp-ruby-2026 .tp-step p{margin-bottom:0;font-size:14.5px}\n#tp-ruby-2026 .tp-code{border-radius:12px;background:#1e2933;color:#f6f9fb;overflow:hidden;margin:18px 0 23px;border:1px solid #222f3b}\n#tp-ruby-2026 .tp-codebar{display:flex;align-items:center;justify-content:space-between;gap:10px;padding:12px 16px;border-bottom:1px solid rgba(255,255,255,.1);font-size:11px;color:#aeb9c3;font-weight:700}\n#tp-ruby-2026 .tp-window-dots{display:flex;gap:5px}\n#tp-ruby-2026 .tp-window-dots i{display:block;width:7px;height:7px;border-radius:50%;background:#627180}\n#tp-ruby-2026 .tp-window-dots i:first-child{background:#ff9b00}\n#tp-ruby-2026 .tp-code pre{margin:0;padding:18px 20px;font:13px\/1.95 ui-monospace,SFMono-Regular,Menlo,Consolas,monospace;overflow-x:auto;white-space:pre;color:#e5ecf2}\n#tp-ruby-2026 .tp-code .tp-comment{color:#99a9b6}\n#tp-ruby-2026 .tp-code .tp-command{color:#ffd39a}\n#tp-ruby-2026 .tp-faq{border-top:1px solid #e6ebee;margin-top:22px}\n#tp-ruby-2026 .tp-faq details{border-bottom:1px solid #e6ebee;padding:4px 0}\n#tp-ruby-2026 .tp-faq summary{padding:18px 30px 18px 0;cursor:pointer;position:relative;list-style:none;font-size:15px;font-weight:700;color:#283441}\n#tp-ruby-2026 .tp-faq summary::-webkit-details-marker{display:none}\n#tp-ruby-2026 .tp-faq summary::after{content:\"+\";position:absolute;right:3px;top:16px;color:#cb7f08;font-size:22px;font-weight:400;line-height:1}\n#tp-ruby-2026 .tp-faq details[open] summary::after{content:\"\u2212\"}\n#tp-ruby-2026 .tp-faq p{margin:0 0 20px;font-size:14px}\n#tp-ruby-2026 .tp-source-list{margin:20px 0 0;padding:0;list-style:none}\n#tp-ruby-2026 .tp-source-list li{border-bottom:1px solid #eef0f2;padding:10px 0;color:#5d6975;font-size:13.5px}\n#tp-ruby-2026 .tp-source-list a{color:#c27907;font-weight:700;border-bottom:1px solid #ffdba2}\n#tp-ruby-2026 .tp-source-list a:hover{color:#874e00}\n#tp-ruby-2026 .tp-bottom{padding:0 0 80px}\n#tp-ruby-2026 .tp-bottom-card{display:flex;align-items:center;justify-content:space-between;gap:24px;border:1px solid #e6e8ec;border-radius:17px;background:linear-gradient(110deg,#fff9ef 0%,#fff 65%);padding:29px 34px}\n#tp-ruby-2026 .tp-bottom-card small{display:block;text-transform:uppercase;color:#c07c19;letter-spacing:.13em;font-size:10px;font-weight:800;margin-bottom:6px}\n#tp-ruby-2026 .tp-bottom-card h2{font-size:22px!important;letter-spacing:-.03em!important;line-height:1.3!important;margin:0 0 8px!important}\n#tp-ruby-2026 .tp-bottom-card p{margin:0;color:#75808d;font-size:13px;max-width:560px;line-height:1.7}\n#tp-ruby-2026 .tp-btn{display:inline-flex;align-items:center;justify-content:center;gap:10px;background:#25313c;color:#fff!important;border:1px solid #25313c;border-radius:8px;padding:13px 17px;font-size:12px;font-weight:800;white-space:nowrap}\n#tp-ruby-2026 .tp-btn:hover{background:#e58b00;border-color:#e58b00;transform:translateY(-2px)}\n@media(max-width:1000px){#tp-ruby-2026 .tp-hero-grid{grid-template-columns:minmax(0,1fr) minmax(290px,.9fr);gap:35px}#tp-ruby-2026 .tp-article-grid{grid-template-columns:180px minmax(0,1fr);gap:32px}#tp-ruby-2026 .tp-ver-card strong{font-size:21px}}\n@media(max-width:780px){#tp-ruby-2026 .tp-shell{width:min(100% - 36px,700px)}#tp-ruby-2026 .tp-hero{padding:51px 0 46px}#tp-ruby-2026 .tp-hero-grid{grid-template-columns:1fr;gap:36px}#tp-ruby-2026 .tp-hero h1{max-width:680px}#tp-ruby-2026 .tp-hero-visual{max-width:570px;width:100%}#tp-ruby-2026 .tp-article-grid{display:block;padding-top:41px;padding-bottom:43px}#tp-ruby-2026 .tp-sidebar{position:static;border-left:0;border-bottom:1px solid var(--tp-line);padding:0 0 19px;margin-bottom:34px}#tp-ruby-2026 .tp-sidebar-title{margin-bottom:9px}#tp-ruby-2026 .tp-sidebar a{display:inline-block;margin:4px 15px 4px 0;font-size:12px}#tp-ruby-2026 .tp-sidebar .tp-source-chip{display:none}#tp-ruby-2026 .tp-section{margin-top:43px}#tp-ruby-2026 .tp-bottom{padding-bottom:55px}}\n@media(max-width:520px){#tp-ruby-2026 .tp-shell{width:calc(100% - 30px)}#tp-ruby-2026 .tp-hero{padding:39px 0 37px}#tp-ruby-2026 .tp-eyebrow{letter-spacing:.11em;font-size:10px}#tp-ruby-2026 .tp-hero h1{font-size:33px;margin:17px 0 18px}#tp-ruby-2026 .tp-deck{font-size:15px;line-height:1.75}#tp-ruby-2026 .tp-hero-visual{padding:18px;border-radius:15px}#tp-ruby-2026 .tp-version{font-size:12px}#tp-ruby-2026 .tp-release{padding:11px 10px}#tp-ruby-2026 .tp-main p{font-size:14.5px}#tp-ruby-2026 .tp-intro{padding:18px}#tp-ruby-2026 .tp-intro p{font-size:14.5px}#tp-ruby-2026 .tp-main h2{font-size:25px}#tp-ruby-2026 .tp-stats{gap:7px}#tp-ruby-2026 .tp-stat{padding:14px 11px;min-height:102px}#tp-ruby-2026 .tp-stat strong{font-size:26px}#tp-ruby-2026 .tp-stat small{font-size:10px}#tp-ruby-2026 .tp-versions{grid-template-columns:1fr;gap:8px}#tp-ruby-2026 .tp-ver-card{display:grid;grid-template-columns:1fr auto;gap:0 8px;padding:15px}#tp-ruby-2026 .tp-ver-card small{grid-column:1}#tp-ruby-2026 .tp-ver-card strong{font-size:23px;grid-column:1}#tp-ruby-2026 .tp-ver-card span{grid-column:2;grid-row:2;align-self:center;margin-top:3px}#tp-ruby-2026 .tp-ver-card a{grid-column:1 \/ -1;margin-top:8px}#tp-ruby-2026 .tp-risk-grid{grid-template-columns:1fr}#tp-ruby-2026 .tp-featured-risk{padding:18px}#tp-ruby-2026 .tp-bottom-card{flex-direction:column;align-items:flex-start;padding:22px}#tp-ruby-2026 .tp-btn{width:100%}#tp-ruby-2026 .tp-step{grid-template-columns:34px 1fr;gap:12px}#tp-ruby-2026 .tp-step-num{width:32px;height:32px;border-radius:9px}}\n@media(prefers-reduced-motion:reduce){#tp-ruby-2026 a,#tp-ruby-2026 .tp-ver-card{transition:none!important}}\n<\/style>\n\n<article id=\"tp-ruby-2026\" lang=\"tr\" aria-label=\"Ruby 3.3.13, 3.4.12 ve 4.0.9 g\u00fcvenlik g\u00fcncellemeleri\">\n  <header class=\"tp-hero\">\n    <div class=\"tp-shell tp-hero-grid\">\n      <div>\n        <div class=\"tp-eyebrow\"><span class=\"tp-dot\" aria-hidden=\"true\"><\/span> TECHPARK \/ DEVELOPMENT \/ SECURITY<\/div>\n        <h1>Ruby 3.3.13, 3.4.12 ve 4.0.9 i\u00e7in <span class=\"tp-accent\">g\u00fcvenlik g\u00fcncellemeleri<\/span> yay\u0131mland\u0131<\/h1>\n        <p class=\"tp-deck\">23 Ekim 2026 tarihli Ruby s\u00fcr\u00fcmleri, d\u00fczenli ifade derleme motorundaki \u00f6nemli hatalar\u0131 gideriyor. GitLab ba\u011flant\u0131l\u0131 g\u00fcvenlik a\u00e7\u0131klar\u0131, etkilenen uygulamalar ve g\u00fcvenli g\u00fcncelleme ad\u0131mlar\u0131n\u0131 inceliyoruz.<\/p>\n        <div class=\"tp-meta\"><span>24 Ekim 2026<\/span><i aria-hidden=\"true\"><\/i><span>Development<\/span><i aria-hidden=\"true\"><\/i><span>Yakla\u015f\u0131k 7 dakika okuma<\/span><\/div>\n      <\/div>\n      <div class=\"tp-hero-visual\" aria-label=\"Ruby g\u00fcvenlik g\u00fcncellemeleri s\u00fcr\u00fcm \u00f6zeti\">\n        <div class=\"tp-visual-top\">\n          <div style=\"display:flex;align-items:center;gap:12px\"><div class=\"tp-node-mark\" aria-hidden=\"true\">Rb<\/div><div><div class=\"tp-mini-eyebrow\">23 OCT 2026<\/div><div class=\"tp-visual-title\">Ruby security releases<\/div><\/div><\/div>\n          <span class=\"tp-signal\" aria-hidden=\"true\"><\/span>\n        <\/div>\n        <div class=\"tp-release-list\">\n          <div class=\"tp-release\"><div><b>Ruby 3.3.x<\/b><small>Security maintenance<\/small><\/div><div class=\"tp-version\">v3.3.13 <em>FIXED<\/em><\/div><\/div>\n          <div class=\"tp-release\"><div><b>Ruby 3.4.x<\/b><small>Normal maintenance<\/small><\/div><div class=\"tp-version\">v3.4.12 <em>FIXED<\/em><\/div><\/div>\n          <div class=\"tp-release\"><div><b>Ruby 4.0.x<\/b><small>Normal maintenance<\/small><\/div><div class=\"tp-version\">v4.0.9 <em>FIXED<\/em><\/div><\/div>\n        <\/div>\n        <div class=\"tp-visual-foot\"><span>Security bulletin \/ October 2026<\/span><strong>Regexp \/ Onigmo<\/strong><\/div>\n      <\/div>\n    <\/div>\n  <\/header>\n\n  <div class=\"tp-shell tp-article-grid\">\n    <nav class=\"tp-sidebar\" aria-label=\"Yaz\u0131 i\u00e7indekiler\">\n      <div class=\"tp-sidebar-title\">\u0130\u00c7\u0130NDEK\u0130LER<\/div>\n      <a href=\"#tp-neden\">Bu s\u00fcr\u00fcmler neden \u00f6nemli?<\/a>\n      <a href=\"#tp-surumler\">G\u00fcncel Ruby s\u00fcr\u00fcmleri<\/a>\n      <a href=\"#tp-aciklar\">Regexp g\u00fcvenlik a\u00e7\u0131klar\u0131<\/a>\n      <a href=\"#tp-diger\">Resolv ve ek g\u00fcvenlik notlar\u0131<\/a>\n      <a href=\"#tp-adimlar\">Nas\u0131l g\u00fcncellenir?<\/a>\n      <a href=\"#tp-sss\">S\u0131k sorulan sorular<\/a>\n      <a href=\"#tp-kaynaklar\">Resm\u00ee kaynaklar<\/a>\n      <a class=\"tp-source-chip\" href=\"https:\/\/www.ruby-lang.org\/en\/news\/2026\/10\/23\/regexp-fixes-for-gitlab-cves\/\" target=\"_blank\" rel=\"noopener noreferrer\"><span class=\"tp-dot\" aria-hidden=\"true\"><\/span> Ruby duyurusu<\/a>\n    <\/nav>\n\n    <div class=\"tp-main\">\n      <div class=\"tp-intro\"><p><strong>K\u0131sa \u00f6zet:<\/strong> Ruby ekibi <strong>3.3.13, 3.4.12 ve 4.0.9<\/strong> s\u00fcr\u00fcmlerini 23 Ekim 2026&#8217;da yay\u0131mlad\u0131. \u00dc\u00e7\u00fc de Ruby&#8217;nin <strong>Onigmo d\u00fczenli ifade motorundaki<\/strong>, GitLab taraf\u0131ndan bildirilen d\u00f6rt CVE ile ili\u015fkili hatalar\u0131n d\u00fczeltmelerini i\u00e7eriyor. \u00d6zellikle g\u00fcvenilmeyen girdilerden dinamik <code>Regexp<\/code> olu\u015fturan uygulamalar\u0131n g\u00fcncellenmesi \u00f6nemli.<\/p><\/div>\n\n      <section id=\"tp-neden\" class=\"tp-section\">\n        <div class=\"tp-kicker\">01 \/ GENEL BAKI\u015e<\/div>\n        <h2>Ruby&#8217;nin Ekim 2026 g\u00fcncellemeleri neden \u00f6nemli?<\/h2>\n        <p>Ruby; Ruby on Rails uygulamalar\u0131, API servisleri, arka plan i\u015fleri ve otomasyon sistemlerinde s\u0131kl\u0131kla kullan\u0131l\u0131yor. Bu projelerde d\u00fczenli ifadeler; metinleri ay\u0131klamak, bi\u00e7imleri do\u011frulamak ve kullan\u0131c\u0131 taraf\u0131ndan belirlenen kurallar\u0131 i\u015flemek i\u00e7in tercih edilebiliyor.<\/p>\n        <p>23 Ekim duyurusu, yaln\u0131zca uygulama kodundan de\u011fil, Ruby&#8217;nin kendi <strong>Regexp derleme mekanizmas\u0131ndan<\/strong> kaynaklanan sorunlara odaklan\u0131yor. GitLab&#8217;\u0131n ara\u015ft\u0131rmas\u0131na g\u00f6re \u00f6zel haz\u0131rlanm\u0131\u015f desenler belirli ko\u015fullarda belle\u011fi bozabiliyor ve GitLab sunucular\u0131nda <strong>uzaktan kod \u00e7al\u0131\u015ft\u0131rma<\/strong> riskine d\u00f6n\u00fc\u015febiliyordu. Ruby ekibi, bu sorunlar\u0131n temelindeki hatalar\u0131 \u00fc\u00e7 desteklenen s\u00fcr\u00fcm serisinde d\u00fczeltti.<\/p>\n        <div class=\"tp-stats\" aria-label=\"Ruby g\u00fcncellemesinin say\u0131sal \u00f6zeti\">\n          <div class=\"tp-stat\"><strong>3<span>\u00d7<\/span><\/strong><small>G\u00fcncellenen Ruby s\u00fcr\u00fcm serisi<\/small><\/div>\n          <div class=\"tp-stat\"><strong>4<\/strong><small>GitLab taraf\u0131ndan bildirilen ilgili CVE<\/small><\/div>\n          <div class=\"tp-stat\"><strong>23<\/strong><small>Ekim 2026 yay\u0131n tarihi<\/small><\/div>\n        <\/div>\n        <p><strong>\u00d6nemli ayr\u0131m:<\/strong> Bu a\u00e7\u0131klar, uygulama sald\u0131rgan\u0131n denetledi\u011fi bir metni d\u00fczenli ifade deseni olarak derliyorsa g\u00fcndeme geliyor. Yaln\u0131zca geli\u015ftiricilerin yazd\u0131\u011f\u0131 sabit Regexp desenlerini kullanan uygulamalar bu \u00f6zel hatalardan etkilenmiyor.<\/p>\n      <\/section>\n\n      <section id=\"tp-surumler\" class=\"tp-section\">\n        <div class=\"tp-kicker\">02 \/ S\u00dcR\u00dcM REHBER\u0130<\/div>\n        <h2>Ruby 3.3.13, 3.4.12 ve 4.0.9 ile neler de\u011fi\u015fti?<\/h2>\n        <p>Her \u00fc\u00e7 s\u00fcr\u00fcm, duyuruda belirtilen Regexp d\u00fczeltmelerinin tamam\u0131n\u0131 i\u00e7eriyor. Ancak her seride ek de\u011fi\u015fikliklerin kapsam\u0131 ve bak\u0131m durumu farkl\u0131. Mevcut Ruby ana s\u00fcr\u00fcm\u00fcnde kalarak g\u00fcvenlik yamas\u0131na ge\u00e7mek genellikle iyi bir ilk ad\u0131m; ana s\u00fcr\u00fcm de\u011fi\u015ftirmek ayr\u0131ca uyumluluk testi gerektirir.<\/p>\n        <div class=\"tp-versions\">\n          <div class=\"tp-ver-card\"><small>Ruby 3.3 serisi<\/small><strong>3.3.13<\/strong><span>G\u00fcvenlik bak\u0131m\u0131<\/span><a href=\"https:\/\/www.ruby-lang.org\/en\/news\/2026\/10\/23\/ruby-3-3-13-released\/\" target=\"_blank\" rel=\"noopener noreferrer\" aria-label=\"Ruby 3.3.13 s\u00fcr\u00fcm notlar\u0131n\u0131 a\u00e7\">S\u00fcr\u00fcm notlar\u0131<\/a><\/div>\n          <div class=\"tp-ver-card\"><small>Ruby 3.4 serisi<\/small><strong>3.4.12<\/strong><span>Normal bak\u0131m<\/span><a href=\"https:\/\/www.ruby-lang.org\/en\/news\/2026\/10\/23\/ruby-3-4-12-released\/\" target=\"_blank\" rel=\"noopener noreferrer\" aria-label=\"Ruby 3.4.12 s\u00fcr\u00fcm notlar\u0131n\u0131 a\u00e7\">S\u00fcr\u00fcm notlar\u0131<\/a><\/div>\n          <div class=\"tp-ver-card\"><small>Ruby 4.0 serisi<\/small><strong>4.0.9<\/strong><span>Normal bak\u0131m<\/span><a href=\"https:\/\/www.ruby-lang.org\/en\/news\/2026\/10\/23\/ruby-4-0-9-released\/\" target=\"_blank\" rel=\"noopener noreferrer\" aria-label=\"Ruby 4.0.9 s\u00fcr\u00fcm notlar\u0131n\u0131 a\u00e7\">S\u00fcr\u00fcm notlar\u0131<\/a><\/div>\n        <\/div>\n        <p><strong>Ruby 3.3.13<\/strong>, g\u00fcvenlik bak\u0131m\u0131 a\u015famas\u0131ndaki 3.3 serisine Regexp d\u00fczeltmelerini getiriyor; ayr\u0131ca varsay\u0131lan <code>resolv<\/code> gem&#8217;ini <strong>0.3.2<\/strong> s\u00fcr\u00fcm\u00fcne \u00e7\u0131kar\u0131yor. <strong>Ruby 3.4.12<\/strong>, ilgili Regexp hatalar\u0131na ek olarak di\u011fer hata d\u00fczeltmelerini de kaps\u0131yor. <strong>Ruby 4.0.9<\/strong> ise \u00f6zellikle daha \u00f6nce 4.0.8&#8217;e kadar tamamlanmam\u0131\u015f olan tekrar desenleriyle ili\u015fkili son Regexp d\u00fczeltmesini i\u00e7eriyor.<\/p>\n        <p class=\"tp-note\">Not: Bunlar 23 Ekim 2026 duyurusundaki g\u00fcvenlik s\u00fcr\u00fcmleridir. Kurulum g\u00fcn\u00fcnde ayn\u0131 seri i\u00e7in daha yeni bir yama \u00e7\u0131km\u0131\u015fsa desteklenen en son yamay\u0131 tercih edin.<\/p>\n      <\/section>\n\n      <section id=\"tp-aciklar\" class=\"tp-section\">\n        <div class=\"tp-kicker\">03 \/ G\u00dcVENL\u0130K ANAL\u0130Z\u0130<\/div>\n        <h2>GitLab ile ili\u015fkili Regexp g\u00fcvenlik a\u00e7\u0131klar\u0131<\/h2>\n        <p>Ruby&#8217;nin kulland\u0131\u011f\u0131 <strong>Onigmo<\/strong> motoru, bir metnin d\u00fczenli ifade desenine \u00e7evrilmesi s\u0131ras\u0131nda \u00e7al\u0131\u015f\u0131r. GitLab, kullan\u0131c\u0131lar\u0131n belirledi\u011fi baz\u0131 CI yap\u0131land\u0131rma desenlerini <code>Regexp.new<\/code> ile derledi\u011finden, k\u00f6t\u00fc niyetli \u00f6rneklerin bellek sorunlar\u0131na neden olabildi\u011fi bir kullan\u0131m alan\u0131 ortaya \u00e7\u0131kt\u0131.<\/p>\n        <div class=\"tp-featured-risk\">\n          <div class=\"tp-risk-head\"><span class=\"tp-risk-label\">\u00d6NE \u00c7IKAN R\u0130SK<\/span><span class=\"tp-cve\">CVE-2026-110264<\/span><\/div>\n          <h3>\u00c7ok say\u0131da tekrar i\u00e7eren desenlerde tamsay\u0131 ta\u015fmas\u0131<\/h3>\n          <p>Belirli d\u00fczenli ifade tekrar desenleri, derleyicinin i\u00e7 kimliklerinin s\u0131n\u0131r\u0131 a\u015fmas\u0131na neden olabiliyordu. Sorunun giderildi\u011fi ilk Ruby 4.0 s\u00fcr\u00fcm\u00fc <strong>4.0.9<\/strong>; ilgili d\u00fczeltme <strong>3.4.12<\/strong> ve <strong>3.3.13<\/strong> s\u00fcr\u00fcmlerinde de bulunuyor. Etkinin olu\u015fmas\u0131 i\u00e7in sald\u0131rgan\u0131n kontrol\u00fcndeki bir desenin uygulama taraf\u0131ndan derlenmesi gerekiyor.<\/p>\n        <\/div>\n        <div class=\"tp-risk-grid\">\n          <div class=\"tp-risk-card\"><span class=\"tp-cve\">CVE-2026-89078<\/span><h3>Desen ayr\u0131\u015ft\u0131rmada double free<\/h3><p>Alternatif i\u00e7eren bir desen ayr\u0131\u015ft\u0131r\u0131l\u0131rken hata meydana geldi\u011finde ayn\u0131 bellek alan\u0131n\u0131n iki kez serbest b\u0131rak\u0131lmas\u0131na neden olan sorun. D\u00fczeltme: <strong>3.3.13 \/ 3.4.12<\/strong>; Ruby 4.0 serisinde <strong>4.0.0<\/strong> itibar\u0131yla mevcut.<\/p><\/div>\n          <div class=\"tp-risk-card\"><span class=\"tp-cve\">CVE-2026-93577<\/span><h3>Derlenmi\u015f desen boyutunda ta\u015fma<\/h3><p>Regexp derleme s\u00fcrecinde ortaya \u00e7\u0131kan tamsay\u0131 ta\u015fmas\u0131. D\u00fczeltme: <strong>3.3.13 \/ 3.4.12<\/strong>; Ruby 4.0 serisinde <strong>4.0.8<\/strong> itibar\u0131yla mevcut.<\/p><\/div>\n          <div class=\"tp-risk-card\"><span class=\"tp-cve\">CVE-2026-97229<\/span><h3>CI\/CD desen derleyicisi sorunu<\/h3><p>GitLab CI\/CD senaryolar\u0131yla ili\u015fkili ba\u015fka bir tamsay\u0131 ta\u015fmas\u0131 kayd\u0131. Ruby&#8217;deki temel hata, bir \u00f6nceki Regexp boyut ta\u015fmas\u0131yla ayn\u0131 d\u00fczeltmeyle gideriliyor.<\/p><\/div>\n          <div class=\"tp-risk-card\"><span class=\"tp-cve\">GEL\u0130\u015eT\u0130R\u0130C\u0130 NOTU<\/span><h3>Regexp.timeout tek ba\u015f\u0131na yeterli de\u011fil<\/h3><p>Resm\u00ee Ruby duyurusuna g\u00f6re <code>Regexp.timeout<\/code> bu bellek hatalar\u0131n\u0131 \u00f6nlemiyor. Desen uzunlu\u011funu s\u0131n\u0131rlamak da her durumda koruma sa\u011flam\u0131yor; g\u00fcvenilmeyen desenleri derlemekten ka\u00e7\u0131n\u0131n.<\/p><\/div>\n        <\/div>\n        <div class=\"tp-soft-banner\"><p><strong>CVE a\u00e7\u0131klamas\u0131:<\/strong> Bu d\u00f6rt CVE GitLab taraf\u0131ndan kendi \u00fcr\u00fcn\u00fcndeki bulgular i\u00e7in yay\u0131mland\u0131. Ruby ekibi, ilgili temel hatalar\u0131 d\u00fczeltti\u011fini a\u00e7\u0131kl\u0131yor; bunlar\u0131 Ruby&#8217;ye ayr\u0131ca atanm\u0131\u015f d\u00f6rt yeni CVE olarak de\u011ferlendirmemek gerekiyor.<\/p><\/div>\n      <\/section>\n\n      <section id=\"tp-diger\" class=\"tp-section\">\n        <div class=\"tp-kicker\">04 \/ EK G\u00dcVENL\u0130K NOTLARI<\/div>\n        <h2>Resolv g\u00fcncellemeleri ve uygulama kapsam\u0131<\/h2>\n        <p>Regexp sorunlar\u0131n\u0131n d\u0131\u015f\u0131nda, Ruby ekosistemindeki DNS \u00e7\u00f6z\u00fcmleme bile\u015feni <code>resolv<\/code> i\u00e7in de ayr\u0131 bir g\u00fcvenlik duyurusu bulunuyor. \u00d6zellikle Ruby 3.3.13, varsay\u0131lan <code>resolv<\/code> s\u00fcr\u00fcm\u00fcn\u00fc <strong>0.3.2<\/strong> d\u00fczeyine ta\u015f\u0131d\u0131\u011f\u0131 i\u00e7in dikkat \u00e7ekiyor.<\/p>\n        <ul class=\"tp-bullets\">\n          <li><span class=\"tp-list-mark\" aria-hidden=\"true\"><\/span><span><strong>CVE-2026-80212:<\/strong> Sald\u0131rgan taraf\u0131ndan y\u00f6nlendirilebilen DNS yan\u0131tlar\u0131n\u0131n, <code>resolv<\/code> kullanan uygulamalarda belle\u011fin t\u00fckenmesine ve servis kesintisine neden olabilmesi.<\/span><\/li>\n          <li><span class=\"tp-list-mark\" aria-hidden=\"true\"><\/span><span><strong>CVE-2026-80213:<\/strong> \u00c7ok uzun alan adlar\u0131yla yap\u0131lan baz\u0131 i\u015flemlerde, do\u011frulanan ana makine ad\u0131 ile \u00e7\u00f6z\u00fcmlenen hedefin farkl\u0131la\u015fabilmesi.<\/span><\/li>\n          <li><span class=\"tp-list-mark\" aria-hidden=\"true\"><\/span><span><strong>Ruby 3.3 serisi:<\/strong> Varsay\u0131lan <code>resolv 0.3.2<\/code>, yukar\u0131daki iki g\u00fcvenlik a\u00e7\u0131\u011f\u0131n\u0131n d\u00fczeltmesini i\u00e7eriyor.<\/span><\/li>\n          <li><span class=\"tp-list-mark\" aria-hidden=\"true\"><\/span><span><strong>Ruby 3.4 ve 4.0 serileri:<\/strong> Ruby \u00e7al\u0131\u015fma zaman\u0131n\u0131 Regexp yamalar\u0131 i\u00e7in g\u00fcncellemek, projede kullan\u0131lan <code>resolv<\/code> s\u00fcr\u00fcm\u00fcn\u00fc g\u00fcvenli d\u00fczeye getirdi\u011finiz anlam\u0131na gelmeyebilir. \u0130lgili gem i\u00e7in <strong>0.7.2 veya \u00fczerini<\/strong> ayr\u0131ca do\u011frulay\u0131n.<\/span><\/li>\n          <li><span class=\"tp-list-mark\" aria-hidden=\"true\"><\/span><span><strong>Ger\u00e7ek maruziyet:<\/strong> Bu DNS a\u00e7\u0131klar\u0131 yaln\u0131zca <code>Resolv<\/code> kullanan kod yollar\u0131nda g\u00fcndeme gelir; i\u015fletim sistemi \u00e7\u00f6z\u00fcmleyicisiyle \u00e7al\u0131\u015fan s\u0131radan ba\u011flant\u0131lar\u0131n hepsi ayn\u0131 \u015fekilde etkilenmez.<\/span><\/li>\n        <\/ul>\n        <div class=\"tp-soft-banner\"><p><strong>Bak\u0131m takvimi:<\/strong> Ruby 3.3 g\u00fcvenlik bak\u0131m\u0131 a\u015famas\u0131nda ve 31 Mart 2027&#8217;de deste\u011finin sona ermesi bekleniyor. Ruby 3.4 ve 4.0 normal bak\u0131m d\u00f6neminde. Ruby 3.2 ise destek d\u0131\u015f\u0131; uzun vadede desteklenen bir ana s\u00fcr\u00fcme ge\u00e7i\u015f planlanmal\u0131.<\/p><\/div>\n      <\/section>\n\n      <section id=\"tp-adimlar\" class=\"tp-section\">\n        <div class=\"tp-kicker\">05 \/ UYGULAMA REHBER\u0130<\/div>\n        <h2>Geli\u015ftiriciler i\u00e7in g\u00fcvenli Ruby g\u00fcncelleme ad\u0131mlar\u0131<\/h2>\n        <p>Yerel geli\u015ftirme ortam\u0131nda g\u00f6r\u00fclen s\u00fcr\u00fcm ile uygulaman\u0131n sunucuda, container i\u00e7inde veya CI\/CD i\u015f ak\u0131\u015f\u0131nda kulland\u0131\u011f\u0131 Ruby farkl\u0131 olabilir. Bu nedenle g\u00fcncellemeyi her ortamda ayr\u0131 do\u011frulamak gerekir.<\/p>\n        <div class=\"tp-steps\">\n          <div class=\"tp-step\"><div class=\"tp-step-num\">01<\/div><div><h3>Aktif Ruby ve Bundler s\u00fcr\u00fcm\u00fcn\u00fc kontrol edin<\/h3><p>\u00d6nce projede hangi Ruby&#8217;nin kullan\u0131ld\u0131\u011f\u0131n\u0131 belirleyin. <code>.ruby-version<\/code>, <code>Gemfile<\/code> ve \u00fcretim ortam\u0131ndaki ger\u00e7ek \u00e7al\u0131\u015fma zaman\u0131n\u0131 kar\u015f\u0131la\u015ft\u0131r\u0131n.<\/p><\/div><\/div>\n        <\/div>\n        <div class=\"tp-code\"><div class=\"tp-codebar\"><span>TERMINAL \u00b7 S\u00dcR\u00dcM KONTROL\u00dc<\/span><div class=\"tp-window-dots\" aria-hidden=\"true\"><i><\/i><i><\/i><i><\/i><\/div><\/div><pre><span class=\"tp-comment\"># Aktif Ruby s\u00fcr\u00fcm\u00fcn\u00fc g\u00f6r\u00fcnt\u00fcle<\/span>\n<span class=\"tp-command\">ruby -v<\/span>\n\n<span class=\"tp-comment\"># Ruby yorumlay\u0131c\u0131s\u0131n\u0131n yolunu kontrol et<\/span>\n<span class=\"tp-command\">which ruby<\/span>\n\n<span class=\"tp-comment\"># Projenin Bundler s\u00fcr\u00fcm\u00fcn\u00fc kontrol et<\/span>\n<span class=\"tp-command\">bundle -v<\/span><\/pre><\/div>\n        <div class=\"tp-steps\">\n          <div class=\"tp-step\"><div class=\"tp-step-num\">02<\/div><div><h3>Mevcut ana seriniz i\u00e7in g\u00fcvenlik s\u00fcr\u00fcm\u00fcn\u00fc y\u00fckleyin<\/h3><p><code>rbenv<\/code> ve g\u00fcncel <code>ruby-build<\/code> kullan\u0131yorsan\u0131z a\u015fa\u011f\u0131daki \u00f6rneklerden <strong>yaln\u0131zca projenize uygun olan\u0131<\/strong> \u00e7al\u0131\u015ft\u0131r\u0131n. Farkl\u0131 bir s\u00fcr\u00fcm y\u00f6neticisi kullan\u0131yorsan\u0131z o arac\u0131n y\u00f6nergelerini izleyin.<\/p><\/div><\/div>\n        <\/div>\n        <div class=\"tp-code\"><div class=\"tp-codebar\"><span>TERMINAL \u00b7 RBENV \u00d6RNEKLER\u0130<\/span><div class=\"tp-window-dots\" aria-hidden=\"true\"><i><\/i><i><\/i><i><\/i><\/div><\/div><pre><span class=\"tp-comment\"># Ruby 3.3 serisini kullanan projeler<\/span>\n<span class=\"tp-command\">rbenv install 3.3.13<\/span>\n\n<span class=\"tp-comment\"># Ruby 3.4 serisini kullanan projeler<\/span>\n<span class=\"tp-command\">rbenv install 3.4.12<\/span>\n\n<span class=\"tp-comment\"># Ruby 4.0 serisini kullanan projeler<\/span>\n<span class=\"tp-command\">rbenv install 4.0.9<\/span>\n\n<span class=\"tp-comment\"># \u00d6rnek: Projede 3.4.12 s\u00fcr\u00fcm\u00fcn\u00fc se\u00e7<\/span>\n<span class=\"tp-command\">rbenv local 3.4.12<\/span>\n<span class=\"tp-command\">ruby -v<\/span><\/pre><\/div>\n        <div class=\"tp-steps\">\n          <div class=\"tp-step\"><div class=\"tp-step-num\">03<\/div><div><h3>Gem ba\u011f\u0131ml\u0131l\u0131klar\u0131n\u0131 ve resolv s\u00fcr\u00fcm\u00fcn\u00fc denetleyin<\/h3><p>Yeni Ruby yorumlay\u0131c\u0131s\u0131nda <code>bundle install<\/code> \u00e7al\u0131\u015ft\u0131r\u0131n. <code>resolv<\/code> gem&#8217;inin ger\u00e7ekten kullan\u0131lan s\u00fcr\u00fcm\u00fcn\u00fc kontrol edin; \u00f6zellikle 3.4 ve 4.0 projelerinde gerekirse Gemfile \u00fczerinden g\u00fcvenli s\u00fcr\u00fcme ge\u00e7ip kilit dosyas\u0131n\u0131 g\u00fcncelleyin.<\/p><\/div><\/div>\n        <\/div>\n        <div class=\"tp-code\"><div class=\"tp-codebar\"><span>TERMINAL \u00b7 GEM VE TESTLER<\/span><div class=\"tp-window-dots\" aria-hidden=\"true\"><i><\/i><i><\/i><i><\/i><\/div><\/div><pre><span class=\"tp-comment\"># Ba\u011f\u0131ml\u0131l\u0131klar\u0131 kur ve do\u011frula<\/span>\n<span class=\"tp-command\">bundle install<\/span>\n<span class=\"tp-command\">bundle check<\/span>\n\n<span class=\"tp-comment\"># Projedeki resolv s\u00fcr\u00fcm\u00fcn\u00fc kontrol et<\/span>\n<span class=\"tp-command\">bundle exec ruby -r resolv -e 'puts Gem.loaded_specs[\"resolv\"]&amp;.version'<\/span>\n\n<span class=\"tp-comment\"># Projenizde tan\u0131ml\u0131ysa testleri \u00e7al\u0131\u015ft\u0131r\u0131n<\/span>\n<span class=\"tp-command\">bundle exec rake test<\/span><\/pre><\/div>\n        <div class=\"tp-steps\">\n          <div class=\"tp-step\"><div class=\"tp-step-num\">04<\/div><div><h3>Regexp kullan\u0131m\u0131n\u0131 ve g\u00fcvenilmeyen girdileri g\u00f6zden ge\u00e7irin<\/h3><p>Kullan\u0131c\u0131 ya da d\u0131\u015f servis verisinden <code>Regexp.new<\/code>, <code>Regexp.compile<\/code>, <code>Regexp.union<\/code> veya interpolasyonla desen \u00fcreten kod yollar\u0131n\u0131 inceleyin. D\u00fczeltmeleri uygulad\u0131ktan sonra bile kullan\u0131c\u0131 girdilerini do\u011frudan Regexp olarak derlememek daha g\u00fcvenlidir.<\/p><\/div><\/div>\n          <div class=\"tp-step\"><div class=\"tp-step-num\">05<\/div><div><h3>\u00dcretim ortam\u0131n\u0131 g\u00fcncelleyin ve yeniden do\u011frulay\u0131n<\/h3><p>Docker taban imajlar\u0131n\u0131, uygulama sunucular\u0131n\u0131 ve CI\/CD \u00e7al\u0131\u015ft\u0131r\u0131c\u0131lar\u0131n\u0131 g\u00fcncelleyin. Ard\u0131ndan testleri, hata kay\u0131tlar\u0131n\u0131 ve \u00e7al\u0131\u015fan s\u00fcrecin Ruby s\u00fcr\u00fcm\u00fcn\u00fc do\u011frulay\u0131n. Sadece yerel bilgisayardaki Ruby&#8217;nin g\u00fcncellenmesi \u00fcretim ortam\u0131n\u0131 korumaz.<\/p><\/div><\/div>\n        <\/div>\n        <div class=\"tp-soft-banner\"><p><strong>G\u00fcvenlik notu:<\/strong> <code>Regexp.timeout<\/code> bu derleme hatalar\u0131na kar\u015f\u0131 yeterli bir ge\u00e7ici \u00e7\u00f6z\u00fcm de\u011fildir. Y\u00fckseltme m\u00fcmk\u00fcn de\u011filse g\u00fcvenilmeyen kaynaklardan gelen metinleri d\u00fczenli ifade deseni olarak derlememek, Ruby ekibinin \u00f6nerdi\u011fi temel \u00f6nlemdir.<\/p><\/div>\n      <\/section>\n\n      <section id=\"tp-sss\" class=\"tp-section\">\n        <div class=\"tp-kicker\">06 \/ SIK SORULAN SORULAR<\/div>\n        <h2>Ruby g\u00fcvenlik g\u00fcncellemeleri hakk\u0131nda merak edilenler<\/h2>\n        <div class=\"tp-faq\">\n          <details><summary>Ruby 3.3.13, 3.4.12 veya 4.0.9 s\u00fcr\u00fcm\u00fcne ge\u00e7meli miyim?<\/summary><p>Bu s\u00fcr\u00fcm serilerinden birini kullan\u0131yorsan\u0131z ilgili g\u00fcvenlik s\u00fcr\u00fcm\u00fcne veya ayn\u0131 seride yay\u0131mlanan daha yeni bir yamaya ge\u00e7meniz \u00f6neriliyor. Ge\u00e7i\u015f \u00f6ncesi uygulaman\u0131z\u0131n ve gem ba\u011f\u0131ml\u0131l\u0131klar\u0131n\u0131z\u0131n uyumlulu\u011funu test edin.<\/p><\/details>\n          <details><summary>Bu a\u00e7\u0131klar her Ruby on Rails uygulamas\u0131n\u0131 etkiliyor mu?<\/summary><p>Hay\u0131r. Duyurudaki Regexp sorunlar\u0131, sald\u0131rgan\u0131n kontrol etti\u011fi desenlerin Ruby taraf\u0131ndan derlenmesi ko\u015fulunda ortaya \u00e7\u0131k\u0131yor. Yaln\u0131zca geli\u015ftiricilerin tan\u0131mlad\u0131\u011f\u0131 sabit desenleri kullanan uygulamalar bu \u00f6zel hatalardan etkilenmiyor.<\/p><\/details>\n          <details><summary>Regexp.timeout ayar\u0131 riski ortadan kald\u0131r\u0131yor mu?<\/summary><p>Hay\u0131r. Ruby ekibi bu hatalar\u0131n derleme s\u0131ras\u0131nda olu\u015ftu\u011funu, Regexp.timeout ayar\u0131n\u0131n bunlara kar\u015f\u0131 koruma sa\u011flamad\u0131\u011f\u0131n\u0131 a\u00e7\u0131k\u00e7a belirtiyor.<\/p><\/details>\n          <details><summary>Ruby s\u00fcr\u00fcm\u00fcn\u00fc y\u00fckseltmek resolv a\u00e7\u0131klar\u0131n\u0131 da giderir mi?<\/summary><p>Ruby 3.3.13, varsay\u0131lan resolv 0.3.2 g\u00fcncellemesini i\u00e7erir. Ruby 3.4 ve 4.0 kullan\u0131yorsan\u0131z projenin \u00e7\u00f6zd\u00fc\u011f\u00fc resolv s\u00fcr\u00fcm\u00fcn\u00fc ayr\u0131ca kontrol edin; resm\u00ee tavsiye bu serilerde resolv 0.7.2 s\u00fcr\u00fcm\u00fcd\u00fcr.<\/p><\/details>\n          <details><summary>GitLab&#8217;\u0131n CVE kay\u0131tlar\u0131 Ruby&#8217;nin kendi CVE&#8217;leri mi?<\/summary><p>Bu d\u00f6rt CVE, GitLab taraf\u0131ndan duyurulan \u00fcr\u00fcn g\u00fcvenlik kay\u0131tlar\u0131d\u0131r. Ruby ekibi, bunlar\u0131n dayand\u0131\u011f\u0131 temel Onigmo hatalar\u0131n\u0131 d\u00fczeltti\u011fini belirtiyor; yaz\u0131n\u0131n haz\u0131rland\u0131\u011f\u0131 tarihte Ruby i\u00e7in ayn\u0131 hatalara ayr\u0131ca CVE atand\u0131\u011f\u0131n\u0131 a\u00e7\u0131klam\u0131yor.<\/p><\/details>\n        <\/div>\n      <\/section>\n\n      <section id=\"tp-kaynaklar\" class=\"tp-section\">\n        <div class=\"tp-kicker\">07 \/ KAYNAKLAR<\/div>\n        <h2>Resm\u00ee Ruby s\u00fcr\u00fcm notlar\u0131 ve g\u00fcvenlik kaynaklar\u0131<\/h2>\n        <p>Bu i\u00e7erik, Ruby ekibinin 23 Ekim 2026 tarihli s\u00fcr\u00fcm duyurular\u0131, Regexp d\u00fczeltme a\u00e7\u0131klamas\u0131, <code>resolv<\/code> g\u00fcvenlik bildirimi ve s\u00fcr\u00fcm ya\u015fam d\u00f6ng\u00fcs\u00fc esas al\u0131narak haz\u0131rlanm\u0131\u015ft\u0131r.<\/p>\n        <ul class=\"tp-source-list\">\n          <li>01 \u2014 <a href=\"https:\/\/www.ruby-lang.org\/en\/news\/2026\/10\/23\/regexp-fixes-for-gitlab-cves\/\" target=\"_blank\" rel=\"noopener noreferrer\">Ruby Project \u2014 GitLab CVE&#8217;leriyle ili\u015fkili Regexp d\u00fczeltmeleri<\/a><\/li>\n          <li>02 \u2014 <a href=\"https:\/\/www.ruby-lang.org\/en\/news\/2026\/10\/23\/ruby-3-3-13-released\/\" target=\"_blank\" rel=\"noopener noreferrer\">Ruby 3.3.13 resm\u00ee s\u00fcr\u00fcm notlar\u0131<\/a><\/li>\n          <li>03 \u2014 <a href=\"https:\/\/www.ruby-lang.org\/en\/news\/2026\/10\/23\/ruby-3-4-12-released\/\" target=\"_blank\" rel=\"noopener noreferrer\">Ruby 3.4.12 resm\u00ee s\u00fcr\u00fcm notlar\u0131<\/a><\/li>\n          <li>04 \u2014 <a href=\"https:\/\/www.ruby-lang.org\/en\/news\/2026\/10\/23\/ruby-4-0-9-released\/\" target=\"_blank\" rel=\"noopener noreferrer\">Ruby 4.0.9 resm\u00ee s\u00fcr\u00fcm notlar\u0131<\/a><\/li>\n          <li>05 \u2014 <a href=\"https:\/\/www.ruby-lang.org\/en\/news\/2026\/08\/27\/multiple-vulnerabilities-in-resolv\/\" target=\"_blank\" rel=\"noopener noreferrer\">Ruby Project \u2014 resolv g\u00fcvenlik duyurusu<\/a><\/li>\n          <li>06 \u2014 <a href=\"https:\/\/www.ruby-lang.org\/en\/downloads\/branches\/\" target=\"_blank\" rel=\"noopener noreferrer\">Ruby s\u00fcr\u00fcmleri ve bak\u0131m takvimi<\/a><\/li>\n          <li>07 \u2014 <a href=\"https:\/\/programming.report\/\" target=\"_blank\" rel=\"noopener noreferrer\">Programming Report \u2014 Yaz\u0131l\u0131m dili haber ak\u0131\u015f\u0131<\/a><\/li>\n        <\/ul>\n      <\/section>\n    <\/div>\n  <\/div>\n  <footer class=\"tp-bottom\">\n    <div class=\"tp-shell\"><div class=\"tp-bottom-card\"><div><small>TECHPARK \/ DEVELOPMENT<\/small><h2>G\u00fcncel bir Ruby altyap\u0131s\u0131, daha g\u00fcvenli uygulamalar demektir.<\/h2><p>\u00c7al\u0131\u015fma zaman\u0131 s\u00fcr\u00fcmlerini, ba\u011f\u0131ml\u0131l\u0131klar\u0131 ve canl\u0131 ortamlar\u0131 d\u00fczenli kontrol edin. G\u00fcvenlik g\u00fcncellemelerini test ederek \u00fcretime ta\u015f\u0131y\u0131n.<\/p><\/div><a class=\"tp-btn\" href=\"https:\/\/www.ruby-lang.org\/en\/news\/2026\/10\/23\/regexp-fixes-for-gitlab-cves\/\" target=\"_blank\" rel=\"noopener noreferrer\">Resm\u00ee duyuruyu incele<\/a><\/div><\/div>\n  <\/footer>\n<\/article>\n","protected":false},"excerpt":{"rendered":"<p>TECHPARK \/ DEVELOPMENT \/ SECURITY Ruby 3.3.13, 3.4.12 ve 4.0.9 i\u00e7in g\u00fcvenlik g\u00fcncellemeleri yay\u0131mland\u0131 23 Ekim 2026 tarihli Ruby s\u00fcr\u00fcmleri, d\u00fczenli ifade derleme motorundaki \u00f6nemli hatalar\u0131 gideriyor. GitLab ba\u011flant\u0131l\u0131 g\u00fcvenlik a\u00e7\u0131klar\u0131, etkilenen uygulamalar ve g\u00fcvenli g\u00fcncelleme ad\u0131mlar\u0131n\u0131 inceliyoruz. 24 Ekim 2026DevelopmentYakla\u015f\u0131k 7 dakika okuma Rb 23 OCT 2026 Ruby security releases Ruby 3.3.xSecurity maintenance v3.3.13 FIXED Ruby 3.4.xNormal maintenance v3.4.12 FIXED Ruby 4.0.xNormal maintenance v4.0.9 FIXED Security bulletin \/ October 2026Regexp \/ Onigmo \u0130\u00c7\u0130NDEK\u0130LER Bu s\u00fcr\u00fcmler neden \u00f6nemli? G\u00fcncel Ruby s\u00fcr\u00fcmleri Regexp g\u00fcvenlik a\u00e7\u0131klar\u0131 Resolv ve ek g\u00fcvenlik notlar\u0131 Nas\u0131l g\u00fcncellenir? S\u0131k sorulan sorular Resm\u00ee kaynaklar Ruby duyurusu K\u0131sa \u00f6zet: Ruby ekibi 3.3.13, 3.4.12 ve 4.0.9 s\u00fcr\u00fcmlerini 23 Ekim 2026&#8217;da yay\u0131mlad\u0131. \u00dc\u00e7\u00fc de Ruby&#8217;nin Onigmo d\u00fczenli ifade motorundaki, GitLab taraf\u0131ndan bildirilen d\u00f6rt CVE ile ili\u015fkili hatalar\u0131n d\u00fczeltmelerini i\u00e7eriyor. \u00d6zellikle g\u00fcvenilmeyen girdilerden dinamik Regexp olu\u015fturan uygulamalar\u0131n g\u00fcncellenmesi \u00f6nemli. 01 \/ GENEL BAKI\u015e Ruby&#8217;nin Ekim 2026 g\u00fcncellemeleri neden \u00f6nemli? Ruby; Ruby on Rails uygulamalar\u0131, API servisleri, arka plan i\u015fleri ve otomasyon sistemlerinde s\u0131kl\u0131kla kullan\u0131l\u0131yor. Bu projelerde d\u00fczenli ifadeler; metinleri ay\u0131klamak, bi\u00e7imleri do\u011frulamak ve kullan\u0131c\u0131 taraf\u0131ndan belirlenen kurallar\u0131 i\u015flemek i\u00e7in tercih edilebiliyor. 23 Ekim duyurusu, yaln\u0131zca uygulama kodundan de\u011fil, Ruby&#8217;nin kendi Regexp derleme mekanizmas\u0131ndan kaynaklanan sorunlara odaklan\u0131yor. GitLab&#8217;\u0131n ara\u015ft\u0131rmas\u0131na g\u00f6re \u00f6zel haz\u0131rlanm\u0131\u015f desenler belirli ko\u015fullarda belle\u011fi bozabiliyor ve GitLab sunucular\u0131nda uzaktan kod \u00e7al\u0131\u015ft\u0131rma riskine d\u00f6n\u00fc\u015febiliyordu. Ruby ekibi, bu sorunlar\u0131n temelindeki hatalar\u0131 \u00fc\u00e7 desteklenen s\u00fcr\u00fcm serisinde d\u00fczeltti. 3\u00d7G\u00fcncellenen Ruby s\u00fcr\u00fcm serisi 4GitLab taraf\u0131ndan bildirilen ilgili CVE 23Ekim 2026 yay\u0131n tarihi \u00d6nemli ayr\u0131m: Bu a\u00e7\u0131klar, uygulama sald\u0131rgan\u0131n denetledi\u011fi bir metni d\u00fczenli ifade deseni olarak derliyorsa g\u00fcndeme geliyor. Yaln\u0131zca geli\u015ftiricilerin yazd\u0131\u011f\u0131 sabit Regexp desenlerini kullanan uygulamalar bu \u00f6zel hatalardan etkilenmiyor. 02 \/ S\u00dcR\u00dcM REHBER\u0130 Ruby 3.3.13, 3.4.12 ve 4.0.9 ile neler de\u011fi\u015fti? Her \u00fc\u00e7 s\u00fcr\u00fcm, duyuruda belirtilen Regexp d\u00fczeltmelerinin tamam\u0131n\u0131 i\u00e7eriyor. Ancak her seride ek de\u011fi\u015fikliklerin kapsam\u0131 ve bak\u0131m durumu farkl\u0131. Mevcut Ruby ana s\u00fcr\u00fcm\u00fcnde kalarak g\u00fcvenlik yamas\u0131na ge\u00e7mek genellikle iyi bir ilk ad\u0131m; ana s\u00fcr\u00fcm de\u011fi\u015ftirmek ayr\u0131ca uyumluluk testi gerektirir. Ruby 3.3 serisi3.3.13G\u00fcvenlik bak\u0131m\u0131S\u00fcr\u00fcm notlar\u0131 Ruby 3.4 serisi3.4.12Normal bak\u0131mS\u00fcr\u00fcm notlar\u0131 Ruby 4.0 serisi4.0.9Normal bak\u0131mS\u00fcr\u00fcm notlar\u0131 Ruby 3.3.13, g\u00fcvenlik bak\u0131m\u0131 a\u015famas\u0131ndaki 3.3 serisine Regexp d\u00fczeltmelerini getiriyor; ayr\u0131ca varsay\u0131lan resolv gem&#8217;ini 0.3.2 s\u00fcr\u00fcm\u00fcne \u00e7\u0131kar\u0131yor. Ruby 3.4.12, ilgili Regexp hatalar\u0131na ek olarak di\u011fer hata d\u00fczeltmelerini de kaps\u0131yor. Ruby 4.0.9 ise \u00f6zellikle daha \u00f6nce 4.0.8&#8217;e kadar tamamlanmam\u0131\u015f olan tekrar desenleriyle ili\u015fkili son Regexp d\u00fczeltmesini i\u00e7eriyor. Not: Bunlar 23 Ekim 2026 duyurusundaki g\u00fcvenlik s\u00fcr\u00fcmleridir. Kurulum g\u00fcn\u00fcnde ayn\u0131 seri i\u00e7in daha yeni bir yama \u00e7\u0131km\u0131\u015fsa desteklenen en son yamay\u0131 tercih edin. 03 \/ G\u00dcVENL\u0130K ANAL\u0130Z\u0130 GitLab ile ili\u015fkili Regexp g\u00fcvenlik a\u00e7\u0131klar\u0131 Ruby&#8217;nin kulland\u0131\u011f\u0131 Onigmo motoru, bir metnin d\u00fczenli ifade desenine \u00e7evrilmesi s\u0131ras\u0131nda \u00e7al\u0131\u015f\u0131r. GitLab, kullan\u0131c\u0131lar\u0131n belirledi\u011fi baz\u0131 CI yap\u0131land\u0131rma desenlerini Regexp.new ile derledi\u011finden, k\u00f6t\u00fc niyetli \u00f6rneklerin bellek sorunlar\u0131na neden olabildi\u011fi bir kullan\u0131m alan\u0131 ortaya \u00e7\u0131kt\u0131. \u00d6NE \u00c7IKAN R\u0130SKCVE-2026-110264 \u00c7ok say\u0131da tekrar i\u00e7eren desenlerde tamsay\u0131 ta\u015fmas\u0131 Belirli d\u00fczenli ifade tekrar desenleri, derleyicinin i\u00e7 kimliklerinin s\u0131n\u0131r\u0131 a\u015fmas\u0131na neden olabiliyordu. Sorunun giderildi\u011fi ilk Ruby 4.0 s\u00fcr\u00fcm\u00fc 4.0.9; ilgili d\u00fczeltme 3.4.12 ve 3.3.13 s\u00fcr\u00fcmlerinde de bulunuyor. Etkinin olu\u015fmas\u0131 i\u00e7in sald\u0131rgan\u0131n kontrol\u00fcndeki bir desenin uygulama taraf\u0131ndan derlenmesi gerekiyor. CVE-2026-89078 Desen ayr\u0131\u015ft\u0131rmada double free Alternatif i\u00e7eren bir desen ayr\u0131\u015ft\u0131r\u0131l\u0131rken hata meydana geldi\u011finde ayn\u0131 bellek alan\u0131n\u0131n iki kez serbest b\u0131rak\u0131lmas\u0131na neden olan sorun. D\u00fczeltme: 3.3.13 \/ 3.4.12; Ruby 4.0 serisinde 4.0.0 itibar\u0131yla mevcut. CVE-2026-93577 Derlenmi\u015f desen boyutunda ta\u015fma Regexp derleme s\u00fcrecinde ortaya \u00e7\u0131kan tamsay\u0131 ta\u015fmas\u0131. D\u00fczeltme: 3.3.13 \/ 3.4.12; Ruby 4.0 serisinde 4.0.8 itibar\u0131yla mevcut. CVE-2026-97229 CI\/CD desen derleyicisi sorunu GitLab CI\/CD senaryolar\u0131yla ili\u015fkili ba\u015fka bir tamsay\u0131 ta\u015fmas\u0131 kayd\u0131. Ruby&#8217;deki temel hata, bir \u00f6nceki Regexp boyut ta\u015fmas\u0131yla ayn\u0131 d\u00fczeltmeyle gideriliyor. GEL\u0130\u015eT\u0130R\u0130C\u0130 NOTU Regexp.timeout tek ba\u015f\u0131na yeterli de\u011fil Resm\u00ee Ruby duyurusuna g\u00f6re Regexp.timeout bu bellek hatalar\u0131n\u0131 \u00f6nlemiyor. Desen uzunlu\u011funu s\u0131n\u0131rlamak da her durumda koruma sa\u011flam\u0131yor; g\u00fcvenilmeyen desenleri derlemekten ka\u00e7\u0131n\u0131n. CVE a\u00e7\u0131klamas\u0131: Bu d\u00f6rt CVE GitLab taraf\u0131ndan kendi \u00fcr\u00fcn\u00fcndeki bulgular i\u00e7in yay\u0131mland\u0131. Ruby ekibi, ilgili temel hatalar\u0131 d\u00fczeltti\u011fini a\u00e7\u0131kl\u0131yor; bunlar\u0131 Ruby&#8217;ye ayr\u0131ca atanm\u0131\u015f d\u00f6rt yeni CVE olarak de\u011ferlendirmemek gerekiyor. 04 \/ EK G\u00dcVENL\u0130K NOTLARI Resolv g\u00fcncellemeleri ve uygulama kapsam\u0131 Regexp sorunlar\u0131n\u0131n d\u0131\u015f\u0131nda, Ruby ekosistemindeki DNS \u00e7\u00f6z\u00fcmleme bile\u015feni resolv i\u00e7in de ayr\u0131 bir g\u00fcvenlik duyurusu bulunuyor. \u00d6zellikle Ruby 3.3.13, varsay\u0131lan resolv s\u00fcr\u00fcm\u00fcn\u00fc 0.3.2 d\u00fczeyine ta\u015f\u0131d\u0131\u011f\u0131 i\u00e7in dikkat \u00e7ekiyor. CVE-2026-80212: Sald\u0131rgan taraf\u0131ndan y\u00f6nlendirilebilen DNS yan\u0131tlar\u0131n\u0131n, resolv kullanan uygulamalarda belle\u011fin t\u00fckenmesine ve servis kesintisine neden olabilmesi. CVE-2026-80213: \u00c7ok uzun alan adlar\u0131yla yap\u0131lan baz\u0131 i\u015flemlerde, do\u011frulanan ana makine ad\u0131 ile \u00e7\u00f6z\u00fcmlenen hedefin farkl\u0131la\u015fabilmesi. Ruby 3.3 serisi: Varsay\u0131lan resolv 0.3.2, yukar\u0131daki iki g\u00fcvenlik a\u00e7\u0131\u011f\u0131n\u0131n d\u00fczeltmesini i\u00e7eriyor. Ruby 3.4 ve 4.0 serileri: Ruby \u00e7al\u0131\u015fma zaman\u0131n\u0131 Regexp yamalar\u0131 i\u00e7in g\u00fcncellemek, projede kullan\u0131lan resolv s\u00fcr\u00fcm\u00fcn\u00fc g\u00fcvenli d\u00fczeye getirdi\u011finiz anlam\u0131na gelmeyebilir. \u0130lgili gem i\u00e7in 0.7.2 veya \u00fczerini ayr\u0131ca do\u011frulay\u0131n. Ger\u00e7ek maruziyet: Bu DNS a\u00e7\u0131klar\u0131 yaln\u0131zca Resolv kullanan kod yollar\u0131nda g\u00fcndeme gelir; i\u015fletim sistemi \u00e7\u00f6z\u00fcmleyicisiyle \u00e7al\u0131\u015fan s\u0131radan ba\u011flant\u0131lar\u0131n hepsi ayn\u0131 \u015fekilde etkilenmez. Bak\u0131m takvimi: Ruby 3.3 g\u00fcvenlik bak\u0131m\u0131 a\u015famas\u0131nda ve 31 Mart 2027&#8217;de deste\u011finin sona ermesi bekleniyor. Ruby 3.4 ve 4.0 normal bak\u0131m d\u00f6neminde. Ruby 3.2 ise destek d\u0131\u015f\u0131; uzun vadede desteklenen bir ana s\u00fcr\u00fcme ge\u00e7i\u015f planlanmal\u0131. 05 \/ UYGULAMA REHBER\u0130 Geli\u015ftiriciler i\u00e7in g\u00fcvenli Ruby g\u00fcncelleme ad\u0131mlar\u0131 Yerel geli\u015ftirme ortam\u0131nda g\u00f6r\u00fclen s\u00fcr\u00fcm ile uygulaman\u0131n sunucuda, container i\u00e7inde veya CI\/CD i\u015f ak\u0131\u015f\u0131nda kulland\u0131\u011f\u0131 Ruby farkl\u0131 olabilir. Bu nedenle g\u00fcncellemeyi her ortamda ayr\u0131 do\u011frulamak gerekir. 01 Aktif Ruby ve Bundler s\u00fcr\u00fcm\u00fcn\u00fc kontrol edin \u00d6nce projede hangi Ruby&#8217;nin kullan\u0131ld\u0131\u011f\u0131n\u0131 belirleyin. .ruby-version, Gemfile ve \u00fcretim ortam\u0131ndaki ger\u00e7ek \u00e7al\u0131\u015fma zaman\u0131n\u0131 kar\u015f\u0131la\u015ft\u0131r\u0131n. TERMINAL \u00b7 S\u00dcR\u00dcM KONTROL\u00dc # Aktif Ruby s\u00fcr\u00fcm\u00fcn\u00fc g\u00f6r\u00fcnt\u00fcle ruby -v # Ruby yorumlay\u0131c\u0131s\u0131n\u0131n yolunu kontrol et which ruby # Projenin Bundler s\u00fcr\u00fcm\u00fcn\u00fc kontrol et bundle -v 02 Mevcut ana seriniz i\u00e7in g\u00fcvenlik s\u00fcr\u00fcm\u00fcn\u00fc y\u00fckleyin rbenv ve g\u00fcncel ruby-build kullan\u0131yorsan\u0131z a\u015fa\u011f\u0131daki \u00f6rneklerden yaln\u0131zca projenize uygun olan\u0131 \u00e7al\u0131\u015ft\u0131r\u0131n. Farkl\u0131 bir s\u00fcr\u00fcm y\u00f6neticisi kullan\u0131yorsan\u0131z o arac\u0131n y\u00f6nergelerini izleyin. TERMINAL \u00b7 RBENV \u00d6RNEKLER\u0130 # Ruby 3.3 serisini kullanan projeler rbenv install 3.3.13 # Ruby 3.4 serisini kullanan projeler rbenv install 3.4.12 # Ruby 4.0 serisini kullanan projeler rbenv install 4.0.9 # \u00d6rnek: Projede 3.4.12 s\u00fcr\u00fcm\u00fcn\u00fc se\u00e7 rbenv local 3.4.12 ruby -v 03 Gem ba\u011f\u0131ml\u0131l\u0131klar\u0131n\u0131 ve resolv s\u00fcr\u00fcm\u00fcn\u00fc denetleyin Yeni Ruby yorumlay\u0131c\u0131s\u0131nda bundle install \u00e7al\u0131\u015ft\u0131r\u0131n. resolv gem&#8217;inin ger\u00e7ekten kullan\u0131lan s\u00fcr\u00fcm\u00fcn\u00fc kontrol edin; \u00f6zellikle 3.4 ve 4.0 projelerinde gerekirse Gemfile \u00fczerinden g\u00fcvenli s\u00fcr\u00fcme ge\u00e7ip kilit dosyas\u0131n\u0131 g\u00fcncelleyin. TERMINAL \u00b7 GEM VE TESTLER # Ba\u011f\u0131ml\u0131l\u0131klar\u0131 kur ve do\u011frula bundle<\/p>\n","protected":false},"author":2,"featured_media":836,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_jetpack_newsletter_access":"","_jetpack_dont_email_post_to_subs":false,"_jetpack_newsletter_tier_id":0,"_jetpack_memberships_contains_paywalled_content":false,"_jetpack_memberships_contains_paid_content":false,"footnotes":""},"categories":[11,21],"tags":[],"class_list":["post-834","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-development","category-programming-languages"],"jetpack_sharing_enabled":true,"jetpack_featured_media_url":"https:\/\/techparkcyprus.com\/wp-content\/uploads\/2026\/10\/Ruby-Guncellemeleri-Yayimlandiaryl-1.png","_links":{"self":[{"href":"https:\/\/techparkcyprus.com\/index.php\/wp-json\/wp\/v2\/posts\/834","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/techparkcyprus.com\/index.php\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/techparkcyprus.com\/index.php\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/techparkcyprus.com\/index.php\/wp-json\/wp\/v2\/users\/2"}],"replies":[{"embeddable":true,"href":"https:\/\/techparkcyprus.com\/index.php\/wp-json\/wp\/v2\/comments?post=834"}],"version-history":[{"count":1,"href":"https:\/\/techparkcyprus.com\/index.php\/wp-json\/wp\/v2\/posts\/834\/revisions"}],"predecessor-version":[{"id":835,"href":"https:\/\/techparkcyprus.com\/index.php\/wp-json\/wp\/v2\/posts\/834\/revisions\/835"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/techparkcyprus.com\/index.php\/wp-json\/wp\/v2\/media\/836"}],"wp:attachment":[{"href":"https:\/\/techparkcyprus.com\/index.php\/wp-json\/wp\/v2\/media?parent=834"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/techparkcyprus.com\/index.php\/wp-json\/wp\/v2\/categories?post=834"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/techparkcyprus.com\/index.php\/wp-json\/wp\/v2\/tags?post=834"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}