Skip to content

Commit 79f7d75

Browse files
committed
validate issuer value only
Signed-off-by: Hyunsoo Kim <[email protected]>
1 parent 8b53611 commit 79f7d75

File tree

1 file changed

+16
-4
lines changed

1 file changed

+16
-4
lines changed

plugins/filter_kubernetes/kubernetes_aws.c

Lines changed: 16 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -291,12 +291,14 @@ int determine_platform(struct flb_kube *ctx)
291291
size_t token_size;
292292
char *payload = NULL;
293293
size_t payload_len;
294-
char *issuer_start,
294+
char *issuer_start;
295295
char *issuer_end;
296-
char *first_dot,
296+
char *first_dot;
297297
char *second_dot;
298298
size_t payload_b64_len;
299299
char *payload_b64;
300+
size_t issuer_len;
301+
char *issuer_value;
300302

301303
/* Read serviceaccount token */
302304
ret = flb_utils_read_file(FLB_KUBE_TOKEN, &token_buf, &token_size);
@@ -311,7 +313,7 @@ int determine_platform(struct flb_kube *ctx)
311313
return -1;
312314
}
313315

314-
second_dot = strchr(first_dot + 1, '.');`
316+
second_dot = strchr(first_dot + 1, '.');
315317
if (!second_dot) {
316318
flb_free(token_buf);
317319
return -1;
@@ -381,7 +383,17 @@ int determine_platform(struct flb_kube *ctx)
381383

382384
/* Check if issuer contains EKS OIDC URL pattern */
383385
/* EKS OIDC URLs follow pattern: https://oidc.eks.{region}.amazonaws.com/id/{cluster-id} */
384-
if (strstr(issuer_start, "oidc.eks.") && strstr(issuer_start, ".amazonaws.com/id/")) {
386+
issuer_len = issuer_end - issuer_start;
387+
issuer_value = flb_strndup(issuer_start, issuer_len);
388+
if (!issuer_value) {
389+
flb_free(payload);
390+
return -1;
391+
}
392+
393+
int is_eks = (strstr(issuer_value, "oidc.eks.") && strstr(issuer_value, ".amazonaws.com/id/"));
394+
flb_free(issuer_value);
395+
396+
if (is_eks) {
385397
flb_free(payload);
386398
return 1; /* EKS detected */
387399
}

0 commit comments

Comments
 (0)