Post
Subscribe

Forged Authenticode Across Go Loaders: A Possible Shared Signing Capability

The same forged Authenticode certificate profile appears across materially different Go loaders associated with several malware families, suggesting a reusable signing capability in the packaging layer. The evidence does not establish a shared builder, operator, or commercial service.

Forged Authenticode Across Go Loaders: A Possible Shared Signing Capability

Executive summary

During a sweep of the Filescan Community corpus, we identified the same forged Authenticode certificate profile across materially different Go loaders. The loaders have different implementations, network configurations, and associations with downstream malware, including activity related to Vidar, Lumma, Remus, and StealC.

This separation is the main finding of this research: the recurring signing profile appears to belong to the delivery or packaging layer rather than to any one payload family. It is consistent with a reusable certificate-generation and PE-signing capability (potentially a feature of commodity malware tooling or a form of “evasion as a service”), but we have not identified a common builder, operator, or commercial service.

We observed several distinct forged-certificate constructions during the research. This article focuses on the most distinctive August construction, which we call certificate profile C. This label refers only to the certificate structure, not to a malware family, loader family, campaign, or actor. Profile C uses forged end-entity certificates that resemble plausible code-signing leaves:

  • the subject looks like a software publisher
  • the issuer field names a real DigiCert code-signing intermediate
  • the leaf is not marked as a certificate authority
  • the certificate includes the Code Signing extended key usage
  • the Authenticode signature uses SHA-256
  • and the signature carries a genuine DigiCert timestamp chain

The certificates are not trusted DigiCert certificates. The claimed issuer name is metadata inside the forged leaf. When the leaf certificate signature is checked against the actual public key of the DigiCert intermediate it claims as issuer, verification fails.

Every directly parsed profile-C certificate uses an exact validity span of 32,140,800 seconds, or 372 days. The trusted timestamp falls roughly seven days after notBefore, while notAfter falls roughly 365 days after that timestamp. The 372-day span is not anomalous by itself; it is a shared characteristic that led us to related candidates.

Across the full certificate history available in the Filescan Community corpus, the exact 372-day span appears only on 108 certificate entries representing 97 distinct file hashes. Those hashes split into three non-overlapping metadata buckets:

  • 59 hashes claiming the DigiCert code-signing intermediate observed in profile C
  • 31 hashes with equal subject and issuer distinguished names
  • 7 hashes carrying one genuinely issued Priyo Hutomo / SSL.com certificate

All 59 profile-C files found in the corpus are Go binaries. We analyzed a subset in depth and found materially different loader and payload implementations. The 59-hash metadata bucket is therefore broader than the smaller set of samples whose behavior we directly characterized.

1. Authenticode signatures, certificates, and timestamps

An Authenticode-signed PE contains a PKCS#7 SignedData structure. At a high level, it combines three distinct elements:

Diagram of an Authenticode PKCS#7 SignedData structure showing contentInfo, the certificate collection, and signerInfo. The publisher signature covers authenticatedAttributes, while the timestamp countersignature is stored in unauthenticatedAttributes and countersigns the publisher signature bytes. The timestamp countersignature lives in an unauthenticated attribute and signs only the publisher signature’s bytes, never the certificate or the file digest.

The Authenticode content records the digest of the PE image, and the publisher signature covers authenticated attributes that bind the signature to that content. The file also includes the leaf certificate containing the public key needed to verify the publisher signature. A name in that leaf’s issuer field is only a claim: trust requires the leaf’s certificate signature to validate under the issuer’s public key and the resulting chain to reach a trusted root.

Timestamping is separate. In the samples analyzed here, a timestamp authority used a legacy PKCS#9 counterSignature to sign the publisher’s signature bytes, not the PE digest or the publisher certificate. Because the timestamp is added after the publisher signature, it sits in an unauthenticated-attribute bag where adding it does not invalidate that signature. A genuine timestamp can therefore coexist with a forged and untrusted publisher certificate.

This structure also explains what we believe happened to the profile-C files. We found no evidence that the attackers modified a formerly valid DigiCert certificate. Instead, the evidence is consistent with newly generated, attacker-controlled leaf certificates whose fields name a real DigiCert intermediate. The PE is signed with the private key corresponding to that forged leaf, after which a genuine timestamp is obtained for the file-specific publisher signature.

2. A plausible-looking but untrusted code-signing leaf

A representative profile-C certificate claims the issuer:

1
2
3
CN=DigiCert Trusted G4 Code Signing RSA4096 SHA384 2021 CA1,
O="DigiCert, Inc.",
C=US

That intermediate is real and is published by DigiCert. The malware certificate, however, was not cryptographically issued by it.

A leaf from one of the profile-C samples (89dacc86…, signer Velnoriq Labs) contains:

1
2
3
4
5
6
7
8
9
10
11
subject=C = US, O = Velnoriq Labs, CN = Velnoriq Labs
issuer=C = US, O = "DigiCert, Inc.", CN = DigiCert Trusted G4 Code Signing RSA4096 SHA384 2021 CA1

notBefore=Aug 10 21:30:45 2026 GMT
notAfter=Aug 17 21:30:45 2027 GMT

X509v3 Basic Constraints: critical
    CA:FALSE

X509v3 Extended Key Usage:
    Code Signing

These fields resemble an ordinary code-signing leaf, but X.509 trust does not come from the human-readable issuer string, but from successfully validating the certificate signature and building a chain to a trusted root.

Profile C is therefore best described as a structurally plausible but cryptographically untrusted code-signing leaf.

3. Cryptographic verification proves the claimed issuer did not issue the leaf

The decisive question is: does the leaf’s X.509 certificate signature validate under the actual public key of the issuer it claims? For the held profile-C samples, it does not.

We obtained the real DigiCert Trusted G4 Code Signing RSA4096 SHA384 2021 CA1 intermediate from DigiCert’s certificate repository and used its actual public key to verify the certificate signature of each profile-C leaf independently of Windows chain-building and Authenticode trust evaluation. We also compared each leaf’s claimed issuer DN with the real intermediate’s subject DN:

  • the claimed issuer DN matches the real intermediate’s subject DN
  • the leaf certificate signature does not validate under the real intermediate’s public key
1
2
3
4
5
6
7
8
9
Real intermediate loaded: CN=DigiCert Trusted G4 Code Signing RSA4096 SHA384 2021 CA1,O=DigiCert\, Inc.,C=US

=== 89dacc86bc936a33d32fc6070e8b0923f247d8dc89f21b331ecba9bb2ae9b01a
  claimed issuer : CN=DigiCert Trusted G4 Code Signing RSA4096 SHA384 2021 CA1,O=DigiCert\, Inc.,C=US
  subject        : CN=Velnoriq Labs,O=Velnoriq Labs,C=US
  serial         : 1eed7af41fa8481caa3d4d03df04d59d
  leaf sig algo  : rsassa_pkcs1v15 / sha256
  matches real intermediate subject? True
  VERIFY RESULT  : FAILED — signature does not validate under the real DigiCert intermediate's public key

The signature over the leaf was not produced by the authority that name identifies. This is the core cryptographic finding. The problem is not that the intermediate is absent from the signed file. Legitimate software may omit an intermediate because Windows can already have it locally or obtain it through normal chain-building mechanisms. However, verification still fails when the genuine claimed issuer is explicitly supplied.

4. The exact 372-day validity pivot

Every directly parsed profile-C certificate in our held set uses the same exact validity interval: 32,140,800 seconds (372 days).

The trusted timestamp on those signatures falls roughly seven days after notBefore, while notAfter falls roughly 365 days after the timestamp.

Four representative samples:

SamplenotBeforeTrusted timestampnotAfterSpan
00d3f42d…2026-08-06 22:07:02Z2026-08-13 22:07:05Z2027-08-13 22:07:02Z32,140,800 s
01893775…2026-08-10 19:22:23Z2026-08-17 19:22:25Z2027-08-17 19:22:23Z32,140,800 s
054ef58f…2026-08-09 18:52:32Z2026-08-16 18:52:35Z2027-08-16 18:52:32Z32,140,800 s
89dacc86…2026-08-10 21:30:45Z2026-08-17 21:30:47Z2027-08-17 21:30:45Z32,140,800 s

Across the profile-C samples analyzed, notBefore sits 604,801 to 604,803 seconds before the trusted timestamp and notAfter sits 31,535,997 to 31,535,999 seconds after it.

This is consistent with generation logic approximately equivalent to:

1
2
notBefore = T - 7 days
notAfter  = T + 365 days

where T is close to the timestamping time.

We have not recovered the certificate-generation code, so this is an inference from its outputs. We do not know why the generator uses this offset, and the data does not establish a connection to commercial certificate validity periods.

Corpus population

Across the full certificate history available in the Filescan corpus, we measured over 750,000 certificate entries. The exact 372-day span appears on:

  • 108 certificate entries
  • 97 distinct file hashes

The exact validity span is therefore useful for finding candidates, but it is not specific to profile C. Those 97 hashes split cleanly into three non-overlapping certificate-metadata groups:

Tree diagram splitting the 97 hashes sharing the exact 372-day certificate validity span into three non-overlapping groups: 59 hashes claiming the DigiCert code-signing intermediate, 31 hashes with equal subject and issuer distinguished names, and 7 hashes carrying a genuinely issued SSL.com certificate Corpus population tree

We analyzed the equal-DN bucket and our observations are compatible with several explanations:

  • a loader or packer that includes certificate generation and PE signing as a feature
  • a standalone malicious certificate generator or PE signer used by different tooling
  • separate implementations reproducing shared code or configuration

The current evidence cannot distinguish among these possibilities. We therefore do not classify the 31-hash equal-DN bucket as a profile-C variant or as one proven implementation lineage.

5. A genuine DigiCert timestamp does not make the signer genuine

Profile C combines a genuine DigiCert timestamp chain with a forged, untrusted signer certificate. As discussed in Section 1, those two things are not mutually exclusive: the timestamp is independent of whether the underlying signing certificate is trusted. A valid countersignature only shows that a particular signature existed at a given point in time; it does not validate the identity or trustworthiness of the signer.

The remaining question was whether the timestamp had actually been issued for the signature on each file, or whether the same timestamped data had simply been copied from another sample and reused across the cluster.

To check this, we compared the countersignature’s authenticated messageDigest with the hash of the Authenticode signature it countersigns. If the timestamped blob had been copied unchanged from a donor file, the digest would still correspond to the donor’s signature rather than the signature in the current sample.

That is not what we found. In each case, the messageDigest matches the hash of that file’s own Authenticode signature, and the resulting values differ between samples. This rules out that a single timestamped blob was copied unchanged across multiple files.

Diagram showing two separate trust chains: the forged signer certificate chain, which fails validation against the real DigiCert intermediate, versus the genuine DigiCert timestamp authority chain, which validates independently of the signer Genuine timestamp doesn’t mean genuine signer

6. What Windows shows

Windows does not treat profile C as trusted. On a tested Velnoriq Labs sample, the Certificate dialog displays a yellow warning:

Windows Certificate dialog for the Velnoriq Labs sample, showing a yellow warning, the claimed DigiCert issuer, and the 372-day validity dates

Real Windows Certificate dialog for the Velnoriq Labs sample, showing the yellow warning, claimed DigiCert issuer, and 372-day dates

1
Windows does not have enough information to verify this certificate.

The same dialog shows:

1
2
3
Issued to: Velnoriq Labs
Issued by: DigiCert Trusted G4 Code Signing RSA4096 SHA384 2021 CA1
Valid from: 8/10/2026 to 8/17/2027

The UI therefore exposes two important facts at the same time: the claimed DigiCert issuer name is displayed, but Windows still cannot verify the signer.

Controlled self-signed vs orphan-leaf comparison

We reproduced the presentation difference with a controlled benign A/B test. Both test binaries use:

  • the same benign test-binary basis
  • subject Test Publisher
  • the same RSA-4096 leaf key
  • CA:FALSE
  • equivalent Key Usage
  • Code Signing EKU
  • 372-day validity
  • SHA-256 Authenticode digest

The only experimental variable was trust construction:

  • A: self-signed
  • B: signed by a separate throwaway Test Root CA, with that issuer certificate deliberately absent

Windows presents the two failures differently:

Self-signedOrphan leaf
Windows Certificate dialog General tab for the self-signed test certificateWindows Certificate dialog General tab for the orphan-leaf test certificate, with the issuing Test Root CA deliberately absent

The difference is a presentation effect, not a trust bypass. Digital Signature Details still marks both signatures invalid, but the orphan-leaf construction produces the less explicit message that Windows lacks enough information to verify the certificate while also displaying the name of a recognized CA. That ambiguity could make superficial manual inspection less decisive.

Profile C is not the only forged-certificate structure observed in the Filescan corpus. Between April and August 2026, we found at least three different certificate-generation profiles.

Timeline diagram of the observed certificate-generation profiles A, B, and C over time, noting that the sequence does not establish a single builder lineage Certificate-generation profiles observed over time. The grouping describes structure, not a shared lineage.

Profile A: cloned TLS certificate identity

April and May samples use orphan leaves whose identity fields copy real TLS certificates. For the samples analyzed, the copied values map to legitimate certificates associated with Oracle and LinkedIn in Certificate Transparency data. The genuine TLS certificates cannot serve as valid PE code-signing credentials: the samples copy public identity metadata from them into newly constructed certificates used in Authenticode signatures. The embedded certificates were not issued to the samples by those organizations or their certificate authorities.

For the Oracle example:

FieldForged leaf (78a7732b…)Genuine CT certificate
SubjectCN=www-cs-02.oracle.comSame hostname
IssuerCN=DigiCert Global G3 TLS ECC SHA384 2020 CA1Same issuer DN
Serial0214c7c407d1793b0ccbf241aac955c7Same
Not Before2026-02-06 00:00:00 UTCSame
Not After2027-02-07 23:59:59 UTCSame
Public keyRSA-4096ECC P-384
Basic ConstraintsCA:TRUECA:FALSE
Extended Key UsageserverAuth, clientAuthTLS-oriented
Subject Alternative NameAbsent83 names

The forged leaf reproduces the subject, issuer, serial, and validity timestamps while using a different key and extension profile. It is therefore structurally inconsistent with the genuine certificate whose identity it copies.

Profile B: simpler self-signed certificate

July samples use a simpler self-signed profile with domain-shaped common names such as catch.go and random-looking organization/location fields.

This is distinct from the August equal-DN 372-day bucket, which uses company-style names.

Profile C: generated publisher identity

Profile C does not copy a real website identity and does not present as an obvious self-signed certificate. It uses generated software-publisher-style names while claiming a real DigiCert code-signing intermediate.

Factory-v3 / UpdateFactory

One analyzed April profile-A sample contains both:

1
C:\Users\Administrator\Desktop\UpdateFactory\compiler\1.25.3\go\src\runtime\cgo

and the Go module name:

1
Factory-v3

That sample is directly consistent with the Factory-v3 / UpdateFactory malware lineage previously reported by Unit 42 in July 2026.

The August profile-C samples do not contain equivalent Factory-v3 or UpdateFactory identifiers. Other similarities we examined are too common or non-specific to bridge the April and August populations.

The available evidence therefore does not establish that profile C was produced by Factory-v3 or UpdateFactory.

Other 2026 reporting, including Straiker’s forged-certificate Go loader case and Gen Digital’s GoFlateLoader research, provides useful ecosystem context, but we found no evidence that directly links those activities to this certificate cluster.

8. Loader and payload context

All 59 profile-C files identified in the corpus are Go binaries. We did not analyze the implementation of every file, so the following are representative forms observed in the subset examined in depth, not an exhaustive classification of the full population:

  • standalone executables that manually map PE images in memory
  • DLLs exporting Microsoft Defender MpClient.dll function names, consistent with DLL search-order hijacking scenarios
  • at least one executable where credential-theft functionality appears native to the Go process rather than contained in a separately mapped image

Dynamic and static analysis produced varying levels of consistency with Vidar, Lumma, Remus, and StealC-related activity. Those names describe downstream payload associations, not the Go loaders themselves. The variation in both loader form and payload association shows that profile C is not tied to one malware family or one loader implementation.

This is consistent with certificate generation and PE signing being a reusable capability in the packaging layer. Plausible implementations include a shared signer, a feature exposed by one or more loaders or packers, or separate tooling based on common code or configuration. Without recovered tooling, distinctive shared code, common infrastructure, or evidence of service operation, we cannot determine which explanation is correct or claim that a commodity builder produced all of the files.

9. Defensive guidance

The forged certificate is not a demonstrated endpoint-security bypass. Its defensive value lies in certificate validation and hunting.

Validate cryptography, not labels

A familiar issuer name is not proof of issuance. If a file claims a well-known CA, verify the certificate signature and trust chain rather than treating the DN as trusted metadata.

Use the 372-day span as a candidate pivot

For profile C, a useful triage conjunction is:

  • exact 32,140,800-second certificate validity span
  • software-publisher-style subject
  • claimed issuer matching the DigiCert code-signing intermediate observed here
  • Code Signing EKU and plausible end-entity profile
  • failure of cryptographic verification against the claimed issuer

The exact 372-day interval alone is not specific enough. The Filescan Community corpus also contains the equal-DN bucket and a genuinely issued SSL.com certificate with the same span, so treat the interval as a candidate query pivot, not a family signature.

Do not deploy these fields alone

Avoid standalone detections on:

  • DigiCert issuer DN
  • publisher name
  • absence of an embedded intermediate
  • certificate serial number

Each can legitimately occur outside this malware activity or can be copied from legitimate certificates. If a defender needs to block a specific malicious certificate, a certificate fingerprint or a sufficiently specific conjunction of cryptographic and structural properties is safer than a human-readable field alone.

A genuine timestamp says something narrow

A trusted TSA timestamp establishes that a particular signature existed at a particular time. It does not establish that the signer certificate was validly issued or trusted.

Conclusion

Human-readable certificate fields are attacker-controlled unless the cryptographic chain proves otherwise. Profile C combines:

  • a software-publisher-style subject
  • a real DigiCert code-signing issuer name
  • a plausible code-signing extension profile
  • a genuine DigiCert timestamp countersignature
  • and an exact 372-day validity interval

Yet the leaf certificate signature does not validate under the actual public key of the DigiCert intermediate it claims as issuer.

The 372-day interval was the thread that exposed a broader corpus population, including a 31-hash equal-DN bucket and a genuinely issued SSL.com certificate. It is not anomalous by itself: it is useful for candidate discovery, but insufficient for lineage or attribution.

The more consequential finding is that profile C recurs across heterogeneous Go loaders and downstream malware associations. This is consistent with a reusable signing capability, potentially part of commodity tooling or an “evasion as a service” model, but it does not establish a common builder, operator, or service. The evidence currently locates the commonality at the certificate and signing layer, not in one demonstrated loader implementation.

For defenders, treat certificate fields as evidence, not trust. Validate the cryptography, combine structural features, and measure proposed indicators against legitimate software before deploying them.

Indicators of Compromise

All indicators below are profile C.

File hashes

SHA-256
00d3f42dc0c6527d375f8b5430915ca27f0da7b9608e446d3e5f6c17082577a5
018937753ffa1fdc88796297948d82cff81b0b0beb1dae0335417b178eb581f2
054ef58f518a55839fd787321390f653087406002b05c6b3f509412feea95082
89dacc86bc936a33d32fc6070e8b0923f247d8dc89f21b331ecba9bb2ae9b01a
8dd70bf61c236b0e0d9130b261d0d74ba740a53f695b30be2555d8429efb9cf6
e51f3f92cea62632428dc9b4863bece65992a5966d1a17051a1791a83a7b747f

Network indicators

Network indicators found through the analysis of some of the Go loaders and their payloads.

Indicator
digitden[.]cyou
kupzovo[.]shop:7567
vexdico[.]shop:8539
mrlketo[.]shop:8932
https://steamcommunity[.]com/profiles/76561198657426610
https://telegram[.]me/mlduus
https://www.pinterest[.]com/mlduus
https://telegram[.]me/m1duus
https://www.pinterest[.]com/m1duus
65.109.35[.]163

References

  1. Microsoft, Time Stamping Authenticode Signatures https://learn.microsoft.com/en-us/windows/win32/seccrypto/time-stamping-authenticode-signatures
  2. RFC 5280, Internet X.509 Public Key Infrastructure Certificate and Certificate Revocation List (CRL) Profile https://www.rfc-editor.org/rfc/rfc5280
  3. DigiCert, DigiCert Trusted Root Authority Certificates https://knowledge.digicert.com/general-information/digicert-trusted-root-authority-certificates
  4. DigiCert, Authenticode Program Signing & Timestamping Using SignTool https://knowledge.digicert.com/tutorials/ev-authenticode-using-signtool
  5. Palo Alto Networks Unit 42, Factory-v3 / UpdateFactory research and code-signing impersonation reporting https://unit42.paloaltonetworks.com/vidar-stealer-xmrig-miner-campaign-analysis/
  6. Straiker, Fake Claude Code, Real Malware: Inside the Campaign Targeting AI Developers https://www.straiker.ai/blog/acr-stealer-claude-code-impersonation-campaign
  7. Gen Digital, GoFlateLoader: A Widespread Golang Loader Delivering Multiple Infostealers https://www.gendigital.com/blog/insights/research/goflateloader-delivers-multiple-infostealers
This post is licensed under CC BY 4.0 by the author.