Skip to content

Commit 0e9f28c

Browse files
committed
Update publication dates for CVE-2024-30084 and CVE-2024-35250. Refactor BlogPost layout styles for improved author box presentation and enhance overall readability across various pages.
1 parent 8846893 commit 0e9f28c

File tree

7 files changed

+458
-240
lines changed

7 files changed

+458
-240
lines changed

src/content/breakdowns/cve-2024-30084.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
---
22
title: "CVE-2024-30084 - Windows Kernel Streaming Driver Elevation of Privilege Vulnerability"
3-
pubDate: 2025-05-11
3+
pubDate: 2024-12-15
44
author: "Ghostbyt3"
55
tags: ["1day", "ks.sys", "windows", "kernel", "heap"]
66
description: "CVE-2024-30084 is a privilege escalation vulnerability in the Microsoft Kernel Streaming driver (ks.sys) caused by a race condition in how user-supplied data is handled."

src/content/breakdowns/cve-2024-35250.md

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,9 @@
11
---
22
title: "CVE-2024-35250 - Windows Kernel Streaming Driver Elevation of Privilege Vulnerability"
3-
pubDate: 2025-04-28
3+
pubDate: 2024-12-10
44
author: "Ghostbyt3"
55
tags: ["1day", "ks.sys", "windows", "kernel", "heap"]
6-
description: "CVE-2024-35250 is a logic flaw in the Windows kernels streaming (KS.sys) IOCTL_KS_PROPERTY handler: its UnserializePropertySet path copies a user-provided request and re-issues the IOCTL in kernel mode."
6+
description: "CVE-2024-35250 is a logic flaw in the Windows kernel's streaming (KS.sys) IOCTL_KS_PROPERTY handler: its UnserializePropertySet path copies a user-provided request and re-issues the IOCTL in kernel mode."
77
---
88

99
A logic flaw in the Microsoft Kernel Streaming driver (`ks.sys`) cIOCTL_KS_PROPERTY handler: its UnserializePropertySet path copies a user-provided request and re-issues the IOCTL in kernel mode. By sending a specially crafted IOCTL_KS_PROPERTY request with the KSPROPERTY_TYPE_UNSERIALIZESET flag, an attacker can trigger this path and force the driver to execute the IOCTL again with Irp->RequestorMode = Kernel, effectively granting an arbitrary kernel-mode IOCTL primitive for privilege escalation.

src/layouts/BlogPost.astro

Lines changed: 67 additions & 75 deletions
Original file line numberDiff line numberDiff line change
@@ -141,87 +141,93 @@ const { title, description, pubDate, updatedDate, heroImage } = Astro.props;
141141
display: none;
142142
}
143143
}
144-
</style>
145-
<style>
146144
.author-box {
147145
display: flex;
146+
flex-direction: row;
148147
align-items: center;
149-
gap: 1.2em;
150-
background: linear-gradient(90deg, #fafdff 60%, #f7f8fa 100%);
151-
border: 1.5px solid #e0e7ef;
152-
border-radius: 16px;
153-
padding: 1.5em 2em;
154-
margin: 2.5em auto 0 auto;
155-
max-width: 600px;
156-
box-shadow: 0 4px 24px rgba(44,41,78,0.10), 0 1.5px 8px rgba(44,41,78,0.06);
157-
transition: transform 0.22s cubic-bezier(.4,0,.2,1), box-shadow 0.22s cubic-bezier(.4,0,.2,1);
158-
cursor: pointer;
159-
}
160-
.author-box:hover {
161-
transform: translateY(-4px) scale(1.025);
162-
box-shadow: 0 8px 32px rgba(44,41,78,0.16), 0 2px 12px rgba(44,41,78,0.10);
163-
border-color: #e22d30;
164-
background: linear-gradient(90deg, #fafdff 40%, #ffeaea 100%);
148+
gap: 1em;
149+
background: #f8fafc;
150+
border: 1.5px solid #e5e7eb;
151+
border-radius: 10px;
152+
padding: 0.6em 1.3em 0.6em 1.1em;
153+
margin: 1em auto 1em auto;
154+
box-shadow: 0 2px 8px rgba(44,41,78,0.06);
155+
max-width: 400px;
156+
border-left: 4px solid #e22d30;
157+
}
158+
.author-label, .author-name {
159+
text-align: left;
165160
}
166161
.author-avatar {
167-
width: 74px;
168-
height: 74px;
169-
border-radius: 50%;
162+
display: block;
163+
margin: 0;
164+
width: 36px;
165+
height: 36px;
166+
border-radius: 7px;
170167
object-fit: cover;
171-
border: 2.5px solid #e22d30;
168+
border: 2px solid #e22d30;
172169
background: #fff;
173-
box-shadow: 0 2px 8px rgba(44,41,78,0.08);
174-
transition: border-color 0.22s;
175-
}
176-
.author-box:hover .author-avatar {
177-
border-color: #3b82f6;
170+
box-shadow: none;
178171
}
179172
.author-info {
180173
display: flex;
181174
flex-direction: column;
182-
gap: 0.3em;
183-
}
184-
.author-name {
185-
font-size: 1.18rem;
186-
font-weight: 800;
187-
color: #e22d30;
188-
margin-bottom: 0.18em;
189-
letter-spacing: 0.01em;
190-
text-shadow: 0 1px 2px #fff8, 0 0.5px 1px #e22d3022;
175+
gap: 0.12em;
176+
justify-content: center;
177+
align-items: flex-start;
191178
}
192179
.author-bio {
193180
color: #23263a;
194-
font-size: 1.04rem;
181+
font-size: 0.93rem;
195182
font-weight: 500;
196-
line-height: 1.5;
183+
line-height: 1.3;
197184
}
198185
.author-extra {
199186
display: block;
200187
color: #888;
201-
font-size: 0.97rem;
202-
margin-top: 0.3em;
188+
font-size: 0.85rem;
189+
margin-top: 0.1em;
203190
font-style: italic;
204191
}
205192
.author-tagline {
206193
display: block;
207194
color: #3b82f6;
208-
font-size: 0.98rem;
209-
margin-top: 0.25em;
210-
font-weight: 700;
195+
font-size: 0.89rem;
196+
margin-top: 0.12em;
197+
font-weight: 600;
211198
letter-spacing: 0.01em;
212199
font-family: 'JetBrains Mono', 'Fira Mono', 'Consolas', 'Monaco', monospace;
213200
}
214-
@media (max-width: 600px) {
201+
@media (max-width: 900px) {
215202
.author-box {
216-
flex-direction: column;
217-
align-items: flex-start;
218-
padding: 1em 0.7em;
203+
max-width: 98vw;
204+
padding: 0.35em 0.7em 0.35em 0.7em;
219205
}
220206
.author-avatar {
221-
width: 54px;
222-
height: 54px;
207+
width: 28px;
208+
height: 28px;
209+
border-radius: 5px;
210+
border-width: 1.5px;
223211
}
224212
}
213+
.backlink-row {
214+
margin: 2.2em auto 0 auto;
215+
text-align: center;
216+
}
217+
.backlink {
218+
display: inline-block;
219+
color: #e22d30;
220+
font-size: 1.04rem;
221+
font-weight: 500;
222+
text-decoration: none;
223+
border-bottom: 1.5px solid #e22d30;
224+
padding-bottom: 1.5px;
225+
transition: color 0.18s, border-color 0.18s;
226+
}
227+
.backlink:hover {
228+
color: #b91c1c;
229+
border-color: #b91c1c;
230+
}
225231
</style>
226232
</head>
227233

@@ -245,6 +251,15 @@ const { title, description, pubDate, updatedDate, heroImage } = Astro.props;
245251
}
246252
</div>
247253
<h1>{title}</h1>
254+
{Astro.props.author && (
255+
<div class="author-box">
256+
<img class="author-avatar" src={`/img/team/${Astro.props.author.toLowerCase()}.jpg`} alt={Astro.props.author} />
257+
<div class="author-info">
258+
<span class="author-label">Authored by</span>
259+
<div class="author-name">{Astro.props.author}</div>
260+
</div>
261+
</div>
262+
)}
248263
<hr />
249264
</div>
250265
<nav class="toc-block" id="toc-block" style="display:none">
@@ -253,32 +268,9 @@ const { title, description, pubDate, updatedDate, heroImage } = Astro.props;
253268
</nav>
254269
<slot />
255270
</div>
256-
<!-- Author Box Start -->
257-
{Astro.props.author && (
258-
<div class="author-box">
259-
<img class="author-avatar" src={`/img/team/${Astro.props.author.toLowerCase()}.jpg`} alt={Astro.props.author} />
260-
<div class="author-info">
261-
<div class="author-name">{Astro.props.author}</div>
262-
<div class="author-bio">
263-
{Astro.props.author === 'd4mianwayne' && (
264-
<>
265-
Security researcher focused on fuzzing, reverse engineering, and exploit development. Wannabe Pwner and a bit of a nerd.<br/>
266-
<span class="author-extra">Loves CTFs, open-source, and coffee. Always learning, always hacking.</span>
267-
<span class="author-tagline">wannabe pwner | security researcher</span>
268-
</>
269-
)}
270-
{Astro.props.author === 'ghostbyt3' && (
271-
<>
272-
Security researcher focused on red teaming and web application security, with a strong interest in reverse engineering, exploit development, and low-level Windows internals.<br/>
273-
<span class="author-extra">Enjoys automating exploits, breaking boundaries, and sharing knowledge with the community.</span>
274-
<span class="author-tagline">windows internals nerd | security researcher</span>
275-
</>
276-
)}
277-
</div>
278-
</div>
279-
</div>
280-
)}
281-
<!-- Author Box End -->
271+
<div class="backlink-row">
272+
<a href="/posts/" class="backlink">&larr; Back to all posts</a>
273+
</div>
282274
</article>
283275
</main>
284276
<Footer />

src/pages/breakdowns/index.astro

Lines changed: 40 additions & 67 deletions
Original file line numberDiff line numberDiff line change
@@ -98,90 +98,68 @@ const totalPages = Math.ceil(breakdowns.length / BREAKDOWNS_PER_PAGE);
9898
.post-title .hash {
9999
color: var(--accent);
100100
text-decoration: underline;
101-
font-weight: 900;
102-
margin-right: 0.18em;
101+
}
102+
.post-title:hover {
103+
color: var(--accent);
103104
}
104105
.post-meta {
105-
color: #555;
106-
font-size: 0.95rem;
107-
margin: 0.2rem 0 0.7rem 0;
108-
letter-spacing: 0.01em;
106+
margin: 0.4em 0 0.6em 0;
107+
font-size: 0.9rem;
108+
color: #666;
109109
display: flex;
110-
gap: 0.7em;
110+
gap: 1em;
111+
flex-wrap: wrap;
111112
align-items: center;
112113
}
113114
.post-meta .author {
115+
color: var(--accent);
114116
font-weight: 600;
115-
color: #666;
116117
}
117118
.post-meta .reading-time {
118-
background: none;
119119
color: #888;
120-
font-size: 0.93em;
121-
font-weight: 400;
122-
margin-left: 0.2em;
123-
letter-spacing: 0.01em;
120+
font-style: italic;
124121
}
125122
.post-summary {
126-
color: #6b7280;
127-
font-size: 0.98rem;
128-
margin-bottom: 0.7rem;
129-
line-height: 1.6;
130-
font-weight: 400;
131-
}
132-
.sidebar-section {
133-
margin-bottom: 2.2rem;
134-
background: var(--bg);
135-
border-radius: 0;
136-
box-shadow: none;
137-
padding: 0 0 1.5rem 0;
138-
border: none;
139-
}
140-
.sidebar-section h3 {
141-
font-size: 1.08rem;
142-
color: var(--accent);
143-
font-weight: 600;
144-
margin-bottom: 0.7rem;
145-
letter-spacing: 0.01em;
146-
}
147-
.sidebar-list {
148-
display: flex;
149-
flex-direction: column;
150-
gap: 0.2em;
151-
}
152-
.sidebar-item {
153-
font-size: 1rem;
154-
font-family: 'Google Sans', 'Inter', Arial, sans-serif;
123+
color: #333;
124+
line-height: 1.5;
125+
font-size: 0.95rem;
126+
margin-top: 0.3em;
127+
font-style: italic;
155128
}
156129
.sidebar-item a {
157-
font-size: 1.05rem;
158-
font-weight: 600;
159-
color: #111;
130+
color: var(--fg);
160131
text-decoration: underline;
161-
transition: color 0.2s;
162-
letter-spacing: 0.01em;
163-
display: inline-flex;
164-
align-items: center;
165-
gap: 0.4em;
166-
margin-bottom: 0.1em;
132+
font-weight: 600;
133+
font-size: 0.95rem;
134+
line-height: 1.4;
135+
display: block;
136+
margin-bottom: 0.3em;
137+
}
138+
.sidebar-item a:hover {
139+
color: var(--accent);
167140
}
168141
.sidebar-item a .hash {
169142
color: var(--accent);
170143
text-decoration: underline;
171-
font-weight: 900;
172-
margin-right: 0.18em;
144+
margin-right: 0.3em;
173145
}
174-
.sidebar-delim {
175-
border-bottom: 2px solid var(--accent);
176-
margin: 0.7em 0 0.2em 0;
146+
.sidebar-section h3 {
147+
font-size: 1.3rem;
148+
font-weight: 600;
149+
color: var(--accent);
150+
margin-bottom: 1.2rem;
151+
letter-spacing: 0.5px;
177152
}
178153
.sidebar-item-desc {
179-
font-size: 0.92em;
180-
color: #888;
181-
margin-top: 0.2em;
154+
color: #666;
155+
font-size: 0.85rem;
156+
line-height: 1.4;
157+
margin-bottom: 0.5em;
182158
}
183-
.post-tags {
184-
margin-top: 0.7em;
159+
.sidebar-delim {
160+
height: 1px;
161+
background: var(--border);
162+
margin: 0.8em 0;
185163
}
186164
.post-tag {
187165
display: inline-block;
@@ -249,7 +227,7 @@ const totalPages = Math.ceil(breakdowns.length / BREAKDOWNS_PER_PAGE);
249227
{breakdown.data.author && <span class="author">{breakdown.data.author}</span>}
250228
<span class="reading-time">{breakdown.readingTime}</span>
251229
</div>
252-
<div class="post-summary">{(breakdown.data.summary || breakdown.data.description).split(' ').slice(0, 50).join(' ') + ((breakdown.data.summary || breakdown.data.description).split(' ').length > 50 ? '...' : '')}</div>
230+
<div class="post-summary">{breakdown.data.summary || breakdown.data.description}</div>
253231
</li>
254232
))
255233
)}
@@ -268,11 +246,6 @@ const totalPages = Math.ceil(breakdowns.length / BREAKDOWNS_PER_PAGE);
268246
{breakdowns.slice(0, 3).map((breakdown, idx) => (
269247
<div class="sidebar-item" style="margin-bottom:0.7em;">
270248
<a href={`/breakdowns/${breakdown.id}/`}><span class="hash">#</span>{breakdown.data.title}</a>
271-
<div class="sidebar-item-desc">
272-
{breakdown.data.summary ? breakdown.data.summary.split(' ').slice(0,15).join(' ') + (breakdown.data.summary.split(' ').length > 15 ? '...' : '') :
273-
breakdown.data.description ? breakdown.data.description.split(' ').slice(0,15).join(' ') + (breakdown.data.description.split(' ').length > 15 ? '...' : '') :
274-
(breakdown.data.pubDate ? (new Date(breakdown.data.pubDate)).toLocaleDateString('en-US', { year: 'numeric', month: 'short', day: 'numeric' }) : '')}
275-
</div>
276249
{idx < 2 && <div class="sidebar-delim"></div>}
277250
</div>
278251
))}

0 commit comments

Comments
 (0)