{"version":3,"file":"GnutlsVisual.pcJp2o7u.mjs","names":["useState","useMemo","useCallback","__esmMin","pe","te","init_npm_react_18_3_1","_e","init_jsx_runtime","ne","p","addPropertyControls","init_framer_BL70qLPA","ControlType","GnutlsVisual","props","isLightboxOpen","setIsLightboxOpen","raised","border","text","muted","statusGreen","statusRed","wrapperStyle","captionEl","caption","renderVisual","visualType","blogBackground","image","accent","title","rows","h","index","row","projects","project","steps","step","events","event","takeaways","item","closeLightbox","__FramerMetadata__","init_GnutlsVisual","\"exports\"","\"default\"","\"type\"","\"name\"","\"slots\"","\"annotations\"","\"framerSupportedLayoutWidth\"","\"framerSupportedLayoutHeight\"","\"framerContractVersion\"","\"__FramerMetadata__\""],"sources":["https:/framerusercontent.com/modules/JRYF3APIv2FeEkpLz5mn/JRsTD8YlCXpS5aa86s63/GnutlsVisual.js"],"sourcesContent":["import{jsx as _jsx,jsxs as _jsxs}from\"react/jsx-runtime\";import{addPropertyControls,ControlType}from\"framer\";import{startTransition,useCallback,useMemo,useState}from\"react\";/**\n * @framerSupportedLayoutWidth any\n * @framerSupportedLayoutHeight auto\n */export default function GnutlsVisual(props){const{visualType,title,caption,image={src:\"\",alt:\"\"},accent}=props;const[isLightboxOpen,setIsLightboxOpen]=useState(false);const surface=\"#4A3A31\";const raised=\"#46362E\";const raisedAlt=\"#3F3029\";const border=\"rgba(243, 237, 228, 0.22)\";const text=\"#F3EDE4\";const muted=\"rgba(243, 237, 228, 0.72)\";const statusGreen=\"#34C75A\";const statusRed=\"#E34335\";const fallbackAccent=\"#34C75A\";const wrapperStyle=useMemo(()=>({position:\"relative\",width:\"100%\",borderRadius:12,border:`1px solid ${border}`,background:surface,color:text,overflow:\"hidden\",fontFamily:\"Inter, system-ui, sans-serif\",boxShadow:\"0 10px 24px rgba(20, 14, 11, 0.35)\"}),[border]);const captionEl=caption?/*#__PURE__*/_jsx(\"p\",{style:{margin:0,marginTop:10,fontSize:13,lineHeight:1.55,color:muted,fontStyle:\"italic\"},children:caption}):null;const renderVisual=()=>{if(visualType===\"Image Placeholder\"){const blogBackground=\"var(--token-d4c7081a-9c21-45a0-9033-1a03ee8d0c1a, rgb(241, 233, 223))\";const blogPrimary=\"var(--token-7650b27b-ece1-4bb6-ac7e-7dcdbc50cc0e, rgb(72, 58, 49))\";const blogSecondary=\"var(--token-c9723cc5-5cee-4705-9fbf-0df3b4cad557, rgb(123, 111, 101))\";const blogBorder=\"rgba(123, 111, 101, 0.3)\";return /*#__PURE__*/_jsxs(\"div\",{style:{...wrapperStyle,padding:image?.src?6:8,width:\"100%\",maxWidth:image?.src?680:\"100%\",marginLeft:image?.src?\"auto\":0,marginRight:image?.src?\"auto\":0,background:image?.src?blogBackground:wrapperStyle.background,color:image?.src?blogPrimary:wrapperStyle.color,border:image?.src?\"none\":wrapperStyle.border,boxShadow:image?.src?\"none\":wrapperStyle.boxShadow},children:[image?.src?/*#__PURE__*/_jsx(\"button\",{onClick:()=>{startTransition(()=>setIsLightboxOpen(true));},style:{display:\"block\",width:\"100%\",border:\"none\",padding:0,margin:0,background:\"transparent\",cursor:\"zoom-in\"},\"aria-label\":\"Open image in fullscreen\",children:/*#__PURE__*/_jsx(\"img\",{...image,style:{display:\"block\",width:\"100%\",height:\"auto\",maxHeight:420,objectFit:\"contain\",borderRadius:8,border:\"none\",background:blogBackground}})}):/*#__PURE__*/_jsxs(\"div\",{style:{borderRadius:8,border:`1px dashed ${accent}`,minHeight:220,display:\"flex\",alignItems:\"center\",justifyContent:\"center\",flexDirection:\"column\",padding:20,textAlign:\"center\",background:\"linear-gradient(135deg, rgba(243,237,228,0.1), rgba(243,237,228,0.02))\",gap:8},children:[/*#__PURE__*/_jsx(\"div\",{style:{fontWeight:700,fontSize:16},children:title||\"Image Placeholder\"}),/*#__PURE__*/_jsx(\"div\",{style:{fontSize:13,color:muted},children:\"Upload image in the component controls\"})]}),image?.src?/*#__PURE__*/_jsx(\"p\",{style:{margin:0,marginTop:10,fontSize:13,lineHeight:1.55,color:blogSecondary,fontStyle:\"italic\"},children:caption}):captionEl]});}if(visualType===\"Quote Band\"){return /*#__PURE__*/_jsxs(\"div\",{style:{...wrapperStyle,padding:24,background:\"linear-gradient(135deg, #4A3A31 0%, #3F3029 100%)\",borderLeft:`4px solid ${accent}`},children:[/*#__PURE__*/_jsx(\"p\",{style:{margin:0,fontSize:22,lineHeight:1.4,fontWeight:600},children:title||\"The xz backdoor took a patient adversary years to engineer, whereas this took nothing more than downloading a public file.\"}),captionEl]});}if(visualType===\"Permission Table\"){const rows=[[\"gnutls_3_7_x\",\"Maintainers\",\"Developers + Maintainers\",\"Yes, confirmed\"],[\"ech\",\"Maintainers\",\"Developers + Maintainers\",\"Yes, by rule\"],[\"master\",\"Single user only\",\"Developers + Maintainers\",\"No, merge only\"],[\"gnutls_3_6_x\",\"No one + single user\",\"Developers + Maintainers\",\"No, merge only\"],[\"gnutls_2_x to 3_5_x\",\"No one\",\"No one\",\"No, frozen\"]];return /*#__PURE__*/_jsxs(\"div\",{style:{...wrapperStyle,padding:0},children:[/*#__PURE__*/_jsxs(\"div\",{style:{display:\"flex\",justifyContent:\"space-between\",alignItems:\"center\",padding:\"12px 14px\",borderBottom:`1px solid ${border}`,background:\"rgba(243, 237, 228, 0.07)\"},children:[/*#__PURE__*/_jsx(\"div\",{style:{fontWeight:700},children:title||\"Branch Permissions Matrix\"}),/*#__PURE__*/_jsx(\"img\",{src:\"https://framerusercontent.com/images/quy47bPHjhBPcU7lE7T47zxM.png?width=1035&height=241&kb=63\",alt:\"Truffle Security Co.\",style:{display:\"block\",width:\"100%\",maxWidth:150,height:\"auto\",maxHeight:30,objectFit:\"contain\",objectPosition:\"right center\",flexShrink:0}})]}),/*#__PURE__*/_jsx(\"div\",{style:{overflowX:\"auto\"},children:/*#__PURE__*/_jsxs(\"table\",{style:{width:\"100%\",borderCollapse:\"collapse\",minWidth:520},children:[/*#__PURE__*/_jsx(\"thead\",{children:/*#__PURE__*/_jsx(\"tr\",{children:[\"Branch\",\"Push allowed to\",\"Merge allowed to\",\"This token can push?\"].map(h=>/*#__PURE__*/_jsx(\"th\",{style:{textAlign:\"left\",fontSize:12,padding:\"10px 12px\",color:muted,borderBottom:`1px solid ${border}`,fontFamily:\"ui-monospace, SFMono-Regular, Menlo, monospace\",textTransform:\"uppercase\",letterSpacing:\"0.04em\"},children:h},h))})}),/*#__PURE__*/_jsx(\"tbody\",{children:rows.map((row,index)=>/*#__PURE__*/_jsxs(\"tr\",{style:{background:index%2===1?\"rgba(243, 237, 228, 0.05)\":\"transparent\"},children:[/*#__PURE__*/_jsx(\"td\",{style:{padding:\"10px 12px\",borderBottom:`1px solid ${border}`,fontSize:13,fontFamily:\"ui-monospace, SFMono-Regular, Menlo, monospace\"},children:row[0]}),/*#__PURE__*/_jsx(\"td\",{style:{padding:\"10px 12px\",borderBottom:`1px solid ${border}`,fontSize:13},children:row[1]}),/*#__PURE__*/_jsx(\"td\",{style:{padding:\"10px 12px\",borderBottom:`1px solid ${border}`,fontSize:13},children:row[2]}),/*#__PURE__*/_jsx(\"td\",{style:{padding:\"10px 12px\",borderBottom:`1px solid ${border}`,fontSize:13},children:/*#__PURE__*/_jsx(\"span\",{style:{padding:\"3px 8px\",borderRadius:999,border:`1px solid ${row[3].startsWith(\"Yes\")?statusGreen:statusRed}`,color:row[3].startsWith(\"Yes\")?statusGreen:\"#F6C7C3\",fontFamily:\"ui-monospace, SFMono-Regular, Menlo, monospace\",fontSize:11,background:row[3].startsWith(\"Yes\")?\"rgba(52, 199, 90, 0.14)\":\"rgba(227, 67, 53, 0.14)\"},children:row[3]})})]},row[0]))})]})}),/*#__PURE__*/_jsx(\"div\",{style:{padding:\"10px 14px\"},children:captionEl})]});}if(visualType===\"Project Access Cards\"){const projects=[{name:\"GnuTLS\",slug:\"gnutls/gnutls\",desc:\"the TLS/SSL/DTLS library\"},{name:\"Nettle\",slug:\"gnutls/nettle\",desc:\"the low-level cryptographic primitives GnuTLS is built on\"},{name:\"libtasn1\",slug:\"gnutls/libtasn1\",desc:\"ASN.1 parsing used in certificate validation\"},{name:\"libidn2\",slug:\"libidn/libidn2\",desc:\"internationalized domain handling pulled in by glibc, curl, and wget\"},{name:\"OpenConnect and ocserv\",slug:\"openconnect/openconnect + openconnect/ocserv\",desc:\"the VPN client and server\"}];return /*#__PURE__*/_jsxs(\"div\",{style:{...wrapperStyle,padding:14},children:[/*#__PURE__*/_jsx(\"div\",{style:{fontWeight:700,marginBottom:10},children:title||\"Owner access projects\"}),/*#__PURE__*/_jsx(\"div\",{style:{display:\"grid\",gap:10,gridTemplateColumns:\"repeat(auto-fit, minmax(220px, 1fr))\"},children:projects.map(project=>/*#__PURE__*/_jsxs(\"div\",{style:{border:`1px solid ${border}`,borderLeft:`3px solid ${accent}`,borderRadius:8,background:raised,padding:10},children:[/*#__PURE__*/_jsx(\"div\",{style:{fontWeight:700,marginBottom:5},children:project.name}),/*#__PURE__*/_jsx(\"div\",{style:{display:\"inline-block\",padding:\"2px 7px\",borderRadius:999,border:`1px solid rgba(243,237,228,0.35)`,fontSize:11,fontFamily:\"ui-monospace, SFMono-Regular, Menlo, monospace\",color:muted,marginBottom:8},children:project.slug}),/*#__PURE__*/_jsx(\"div\",{style:{fontSize:13,color:muted,lineHeight:1.45},children:project.desc})]},project.slug))}),captionEl]});}if(visualType===\"Leak Chain\"){const steps=[{title:\"1. A test dumps the environment to a file.\",body:\"The helper script tests/connect-ios-script runs env >apple-ios.$REASON.tmp, writing every variable the runner can see into an untracked temp file.\"},{title:\"2. Every project-wide CI variable was dumped into that tmp file\",body:\"including the GitLab token referenced as API_TOKEN, even though the test job never uses them.\"},{title:\"3. The Fedora job publishes the file as a public artifact.\",body:\"Its artifacts: block uses untracked: true and when: always, so every run uploads that temp dump as an artifact. It expires after a day, but until then anyone can download it from the public project, no authentication required.\"}];return /*#__PURE__*/_jsxs(\"div\",{style:{...wrapperStyle,padding:14},children:[/*#__PURE__*/_jsx(\"div\",{style:{fontWeight:700,marginBottom:10},children:title||\"Leak chain\"}),/*#__PURE__*/_jsx(\"div\",{style:{display:\"grid\",gap:10},children:steps.map((step,index)=>/*#__PURE__*/_jsxs(\"div\",{style:{display:\"grid\",gridTemplateColumns:\"26px 1fr\",gap:10},children:[/*#__PURE__*/_jsxs(\"div\",{style:{position:\"relative\",display:\"flex\",justifyContent:\"center\"},children:[/*#__PURE__*/_jsx(\"div\",{style:{width:16,height:16,borderRadius:999,background:statusGreen,color:\"#1E291F\",display:\"grid\",placeItems:\"center\",fontFamily:\"ui-monospace, SFMono-Regular, Menlo, monospace\",fontSize:10,fontWeight:700,marginTop:4},children:index+1}),index!==steps.length-1&&/*#__PURE__*/_jsx(\"div\",{style:{position:\"absolute\",top:22,bottom:-12,width:1,background:\"rgba(243,237,228,0.26)\"}})]}),/*#__PURE__*/_jsxs(\"div\",{style:{border:`1px solid ${border}`,borderRadius:8,padding:10,background:raised},children:[/*#__PURE__*/_jsx(\"div\",{style:{fontWeight:700,fontSize:13.5,marginBottom:5},children:step.title}),/*#__PURE__*/_jsx(\"div\",{style:{fontSize:13,color:muted,lineHeight:1.5},children:step.body})]})]},step.title))}),captionEl]});}if(visualType===\"Timeline\"){const events=[{date:\"March 1st - 2018\",body:\"The Fedora job begins publishing untracked files as public artifacts.\",chipColor:statusGreen},{date:\"March 1st - 2020\",body:\"The env-dump test lands, exposing every project-wide CI/CD variable as a public artifact (~6 years ago).\",chipColor:statusGreen},{date:\"July 1st - 2020\",body:\"An API_TOKEN variable is added, but it is not scoped correctly, so the triage job never runs successfully and no usable token is leaked.\",chipColor:statusGreen},{date:\"January 11th - 2026\",body:\"A correctly scoped, valid API_TOKEN is added. From this point a live, privileged token leaks on every run.\",chipColor:statusRed},{date:\"June 17th - 2026\",body:\"TruffleHog surfaces the live token, and we verify access and begin disclosure.\",chipColor:statusGreen},{date:\"June 17th - 2026\",body:\"The same day, the project owner commits a fix removing the environment dump (commit f3f74de3).\",chipColor:statusGreen}];return /*#__PURE__*/_jsxs(\"div\",{style:{...wrapperStyle,padding:14},children:[/*#__PURE__*/_jsx(\"div\",{style:{display:\"flex\",justifyContent:\"flex-end\",marginBottom:8},children:/*#__PURE__*/_jsx(\"img\",{src:\"https://framerusercontent.com/images/quy47bPHjhBPcU7lE7T47zxM.png?width=1035&height=241&kb=63\",alt:\"Truffle Security Co.\",style:{display:\"block\",width:\"100%\",maxWidth:150,height:\"auto\",maxHeight:30,objectFit:\"contain\",objectPosition:\"right center\",flexShrink:0}})}),/*#__PURE__*/_jsx(\"div\",{style:{border:`1px solid ${border}`,borderRadius:8,background:raised,padding:10},children:events.map((event,index)=>/*#__PURE__*/_jsx(\"div\",{style:{border:`1px solid ${border}`,borderRadius:8,padding:10,background:index%2===1?\"rgba(243, 237, 228, 0.04)\":\"rgba(243, 237, 228, 0.02)\",paddingBottom:index===events.length-1?0:10,marginBottom:index===events.length-1?0:8},children:/*#__PURE__*/_jsxs(\"div\",{style:{margin:0,fontSize:13.5,lineHeight:1.5,color:text},children:[/*#__PURE__*/_jsx(\"span\",{style:{display:\"inline-block\",marginBottom:4,padding:\"1px 7px\",borderRadius:999,border:`1px solid ${event.chipColor}`,background:event.chipColor===statusRed?\"rgba(227, 67, 53, 0.16)\":\"rgba(52, 199, 90, 0.16)\",fontFamily:\"ui-monospace, SFMono-Regular, Menlo, monospace\",fontSize:11,fontWeight:700,letterSpacing:\"0.02em\",color:event.chipColor},children:event.date}),/*#__PURE__*/_jsxs(\"span\",{children:[\" — \",event.body]})]})},event.date+event.body))}),captionEl]});}if(visualType===\"Fix Commit\"){return /*#__PURE__*/_jsxs(\"div\",{style:{...wrapperStyle,padding:16},children:[/*#__PURE__*/_jsx(\"div\",{style:{fontFamily:\"ui-monospace, SFMono-Regular, Menlo, monospace\",fontSize:12,color:muted,marginBottom:10},children:\"commit f3f74de3\"}),/*#__PURE__*/_jsx(\"div\",{style:{fontWeight:700,fontSize:16,marginBottom:6},children:title||\"tests: do not store environment information\"}),/*#__PURE__*/_jsx(\"div\",{style:{fontSize:13.5,lineHeight:1.55,color:muted},children:caption||\"Removes environment dump lines so CI secrets are never written into artifacts.\"})]});}if(visualType===\"Key Takeaways\"){const takeaways=[\"A compromised widely used project like GnuTLS or XZ is all it takes to achieve a widespread supply chain attack. In 2024 the xz backdoor got there through a fake maintainer earning trust over years. Here the access controls were fine and the token belonged to a real, trusted maintainer.\",\"Audit your CI artifacts, not just the build logs. The token here was masked in the job log but written straight into a public artifact in plaintext, so nothing in the pipeline looked wrong and it sat there for years.\",\"Harvesting a leaked credential is far easier than earning trust. An attacker doesn't need to spend years posing as a maintainer when a trusted maintainer's own token is already sitting in a public file.\",\"Manage user access to projects people are no longer active on. Owner and Maintainer roles that outlive someone's involvement widen the blast radius of any leaked token, so review and revoke stale access regularly.\"];return /*#__PURE__*/_jsxs(\"div\",{style:{...wrapperStyle,padding:14},children:[/*#__PURE__*/_jsx(\"div\",{style:{fontWeight:700,marginBottom:10},children:title||\"Key takeaways\"}),/*#__PURE__*/_jsx(\"div\",{style:{display:\"grid\",gap:8},children:takeaways.map((item,index)=>/*#__PURE__*/_jsxs(\"div\",{style:{border:`1px solid ${border}`,borderLeft:`3px solid ${accent}`,borderRadius:8,padding:10,background:raisedAlt,display:\"grid\",gridTemplateColumns:\"24px 1fr\",gap:8,alignItems:\"start\"},children:[/*#__PURE__*/_jsx(\"div\",{style:{width:22,height:22,borderRadius:999,border:`1px solid ${accent}`,color:accent,display:\"grid\",placeItems:\"center\",fontSize:12,fontFamily:\"ui-monospace, SFMono-Regular, Menlo, monospace\",background:\"rgba(243, 237, 228, 0.1)\"},children:index+1}),/*#__PURE__*/_jsx(\"div\",{style:{fontSize:13,lineHeight:1.5},children:item})]},item.slice(0,24)))}),captionEl]});}return /*#__PURE__*/_jsxs(\"div\",{style:{...wrapperStyle,padding:18,borderLeft:`4px solid ${accent}`},children:[/*#__PURE__*/_jsx(\"div\",{style:{fontWeight:700,fontSize:16},children:title||\"Key takeaway\"}),/*#__PURE__*/_jsx(\"p\",{style:{margin:0,marginTop:8,color:muted,lineHeight:1.55},children:caption||\"Audit CI artifacts, not just logs. If a secret can appear in artifacts, treat it as exposed and rotate.\"})]});};const closeLightbox=useCallback(()=>{startTransition(()=>setIsLightboxOpen(false));},[]);return /*#__PURE__*/_jsxs(\"div\",{style:{position:\"relative\",width:\"100%\"},children:[renderVisual(),visualType===\"Image Placeholder\"&&image?.src&&isLightboxOpen?/*#__PURE__*/_jsxs(\"div\",{onClick:closeLightbox,role:\"dialog\",\"aria-modal\":\"true\",\"aria-label\":\"Image fullscreen view\",style:{position:\"fixed\",inset:0,zIndex:999,background:\"rgba(0, 0, 0, 0.84)\",display:\"flex\",alignItems:\"center\",justifyContent:\"center\",padding:20},children:[/*#__PURE__*/_jsx(\"button\",{onClick:event=>{event.stopPropagation();closeLightbox();},\"aria-label\":\"Close fullscreen image\",style:{position:\"fixed\",top:16,right:16,border:`1px solid ${border}`,background:\"rgba(40, 28, 22, 0.94)\",color:text,borderRadius:8,fontSize:18,lineHeight:1,width:34,height:34,cursor:\"pointer\"},children:\"\\xd7\"}),/*#__PURE__*/_jsx(\"img\",{...image,onClick:event=>event.stopPropagation(),style:{display:\"block\",width:\"min(96vw, 1400px)\",maxHeight:\"92vh\",height:\"auto\",objectFit:\"contain\",borderRadius:10,border:`1px solid ${border}`,background:\"#3A2C25\"}})]}):null]});}GnutlsVisual.displayName=\"GnuTLS Visual\";addPropertyControls(GnutlsVisual,{visualType:{type:ControlType.Enum,title:\"Visual Type\",options:[\"Image Placeholder\",\"Quote Band\",\"Permission Table\",\"Timeline\",\"Fix Commit\",\"Key Takeaway Card\",\"Project Access Cards\",\"Leak Chain\",\"Key Takeaways\"],defaultValue:\"Image Placeholder\"},title:{type:ControlType.String,title:\"Title\",defaultValue:\"GnuTLS Visual\"},caption:{type:ControlType.String,title:\"Caption\",defaultValue:\"\",displayTextArea:true},image:{type:ControlType.ResponsiveImage,title:\"Image\"},accent:{type:ControlType.Color,title:\"Accent\",defaultValue:\"#4c934f\"}});\nexport const __FramerMetadata__ = {\"exports\":{\"default\":{\"type\":\"reactComponent\",\"name\":\"GnutlsVisual\",\"slots\":[],\"annotations\":{\"framerSupportedLayoutWidth\":\"any\",\"framerSupportedLayoutHeight\":\"auto\",\"framerContractVersion\":\"1\"}},\"__FramerMetadata__\":{\"type\":\"variable\"}}}\n//# sourceMappingURL=./GnutlsVisual.map"],"mappings":"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"}