Site being erroneously reported as malware as the analytics.community-scripts.org domain resolves to a blacklisted IP #1216

Closed
opened 2026-02-04 23:42:40 +03:00 by OVERLORD · 32 comments
Owner

Originally created by @ciaranj on GitHub (Jul 3, 2025).

Please verify that you have read and understood the guidelines.

yes

What type of issue is this?

Bug

A clear and concise description of the issue.

The website appears to be being flagged by AVG as malware containing currently? (the domain is blacklisted?)

This tool appears to agree: https://sitecheck.sucuri.net/results/https/community-scripts.github.io/ProxmoxVE/

Which browser are you using?

Chrome

If relevant, including screenshots or a code block can be helpful in clarifying the issue.

No response

Please provide detailed steps to reproduce the issue.

No response

Originally created by @ciaranj on GitHub (Jul 3, 2025). ### Please verify that you have read and understood the guidelines. yes ### What type of issue is this? Bug ### A clear and concise description of the issue. The website appears to be being flagged by AVG as malware containing currently? (the domain is blacklisted?) This tool appears to agree: https://sitecheck.sucuri.net/results/https/community-scripts.github.io/ProxmoxVE/ ### Which browser are you using? Chrome ### If relevant, including screenshots or a code block can be helpful in clarifying the issue. _No response_ ### Please provide detailed steps to reproduce the issue. _No response_
OVERLORD added the website label 2026-02-04 23:42:40 +03:00
Author
Owner

@MickLesk commented on GitHub (Jul 3, 2025):

yeah, but we dont know why. its the analytics website page (umami default). Its secured with SSL Wildcard and an simple umami install

@MickLesk commented on GitHub (Jul 3, 2025): yeah, but we dont know why. its the analytics website page (umami default). Its secured with SSL Wildcard and an simple umami install
Author
Owner

@ciaranj commented on GitHub (Jul 3, 2025):

It's because analytics.community-scripts.org is blacklisted by Zen SpamHaus (or at least the IP 77.165.18.225 is.) Were you sending mails from this IP ?

@ciaranj commented on GitHub (Jul 3, 2025): It's because analytics.community-scripts.org is blacklisted by Zen SpamHaus (or at least the IP 77.165.18.225 is.) Were you sending mails from this IP ?
Author
Owner

@tremor021 commented on GitHub (Jul 3, 2025):

Image
i don't think thats it

@tremor021 commented on GitHub (Jul 3, 2025): ![Image](https://github.com/user-attachments/assets/a6e824c5-6859-40e1-9a5f-5e2243e30bc0) i don't think thats it
Author
Owner

@ciaranj commented on GitHub (Jul 3, 2025):

k. I mean, it looks like it /may/ be it:

Image

The Domain Name isn't blacklisted, but the IP it currently points to, does appear to be blacklisted?

@ciaranj commented on GitHub (Jul 3, 2025): k. I mean, it looks like it /may/ be it: ![Image](https://github.com/user-attachments/assets/3390d260-23fa-43a4-841a-d4b453b9f710) The Domain Name isn't blacklisted, but the IP it currently points to, does appear to be blacklisted?
Author
Owner

@MickLesk commented on GitHub (Jul 3, 2025):

Image

its just the static umami site. I personally have no influence on this, it is secured with Caddy and is a DNS forwarding from my IONOS domain (community-scripts.org) - only @BramSuurdje can say whether anything happens to mails.

Otherwise we might have to move the Analytic to another server (where our Gitea is running)

@MickLesk commented on GitHub (Jul 3, 2025): ![Image](https://github.com/user-attachments/assets/53de064b-492d-4617-b6e6-91e533e5fe1a) its just the static umami site. I personally have no influence on this, it is secured with Caddy and is a DNS forwarding from my IONOS domain (community-scripts.org) - only @BramSuurdje can say whether anything happens to mails. Otherwise we might have to move the Analytic to another server (where our Gitea is running)
Author
Owner

@BramSuurdje commented on GitHub (Jul 3, 2025):

i mean it was working perfectly fine when it was on other domains before. no clue what happened here. like you said we might have to move it to another server

@BramSuurdje commented on GitHub (Jul 3, 2025): i mean it was working perfectly fine when it was on other domains before. no clue what happened here. like you said we might have to move it to another server
Author
Owner

@MickLesk commented on GitHub (Jul 3, 2025):

@michelroegl-brunner your part, do you still have resources for an additional system besides gitea? because the git. / .docs / .api subdomain working fine with this server

@MickLesk commented on GitHub (Jul 3, 2025): @michelroegl-brunner your part, do you still have resources for an additional system besides gitea? because the git. / .docs / .api subdomain working fine with this server
Author
Owner

@BramSuurdje commented on GitHub (Jul 3, 2025):

Image

umami doesnt take alot of resources

@BramSuurdje commented on GitHub (Jul 3, 2025): <img width="642" alt="Image" src="https://github.com/user-attachments/assets/d51539a2-c1ef-4be3-8663-41e233a8fc5a" /> umami doesnt take alot of resources
Author
Owner

@michelroegl-brunner commented on GitHub (Jul 3, 2025):

@michelroegl-brunner your part, do you still have resources for an additional system besides gitea? because the git. / .docs / .api subdomain working fine with this server

Heaps of space left. @BramSuurdje can you shoot me a quick dm on discord how i can set it up on my node?

@michelroegl-brunner commented on GitHub (Jul 3, 2025): > @michelroegl-brunner your part, do you still have resources for an additional system besides gitea? because the git. / .docs / .api subdomain working fine with this server Heaps of space left. @BramSuurdje can you shoot me a quick dm on discord how i can set it up on my node?
Author
Owner

@dddanny79 commented on GitHub (Jul 3, 2025):

Same for me with Norton :

Image

Image

Maybe the information helps.

@dddanny79 commented on GitHub (Jul 3, 2025): Same for me with Norton : ![Image](https://github.com/user-attachments/assets/0989f1c2-284b-4c02-8921-7b9a79e14611) ![Image](https://github.com/user-attachments/assets/4b4f65fd-a8a0-49b0-a54d-6d2b4424c939) Maybe the information helps.
Author
Owner

@MickLesk commented on GitHub (Jul 3, 2025):

We migrate the Umami Analytics in next days to another Host, we dont know why its Blacklisted. All other Subdomain work fine and the Script (Umami) is up-to-date. Maybe this solves it

@MickLesk commented on GitHub (Jul 3, 2025): We migrate the Umami Analytics in next days to another Host, we dont know why its Blacklisted. All other Subdomain work fine and the Script (Umami) is up-to-date. Maybe this solves it
Author
Owner

@ciaranj commented on GitHub (Jul 3, 2025):

The other subdomains point to other (non) blacklisted IPs. Moving it to that same IP will resolve your woes. I’d guess you’re trying to use a residential IP or a shared machine that someone else has used for sending a high volume of mail (spam) so you’re really being affected by ‘side effect’.

@ciaranj commented on GitHub (Jul 3, 2025): The other subdomains point to other (non) blacklisted IPs. Moving it to that same IP will resolve your woes. I’d guess you’re trying to use a residential IP or a shared machine that someone else has used for sending a high volume of mail (spam) so you’re really being affected by ‘side effect’.
Author
Owner

@tremor021 commented on GitHub (Jul 3, 2025):

Yea, hazards of shared hosting, lol

@tremor021 commented on GitHub (Jul 3, 2025): Yea, hazards of shared hosting, lol
Author
Owner

@webmogul1 commented on GitHub (Jul 4, 2025):

It is working now.

@webmogul1 commented on GitHub (Jul 4, 2025): It is working now.
Author
Owner

@ciaranj commented on GitHub (Jul 4, 2025):

I agree, even though the domain is still resolving to an apparently blacklisted IP. (https://check.spamhaus.org/results/?query=77.165.18.225) What-the-heck?!.

@ciaranj commented on GitHub (Jul 4, 2025): I agree, even though the domain is still resolving to an apparently blacklisted IP. (https://check.spamhaus.org/results/?query=77.165.18.225) What-the-heck?!.
Author
Owner

@michelroegl-brunner commented on GitHub (Jul 4, 2025):

Nothing has changed yet. I will do it Monday.

@michelroegl-brunner commented on GitHub (Jul 4, 2025): Nothing has changed yet. I will do it Monday.
Author
Owner

@MickLesk commented on GitHub (Jul 4, 2025):

I reported the incorrect classification to Google yesterday (safebrowsing)

@MickLesk commented on GitHub (Jul 4, 2025): I reported the incorrect classification to Google yesterday (safebrowsing)
Author
Owner

@BramSuurdje commented on GitHub (Jul 6, 2025):

The other subdomains point to other (non) blacklisted IPs. Moving it to that same IP will resolve your woes. I’d guess you’re trying to use a residential IP or a shared machine that someone else has used for sending a high volume of mail (spam) so you’re really being affected by ‘side effect’.

they all run to the same IP

pretty weird though, this umami is running from my VPS instance and i have never had a mail server on there

@BramSuurdje commented on GitHub (Jul 6, 2025): > The other subdomains point to other (non) blacklisted IPs. Moving it to that same IP will resolve your woes. I’d guess you’re trying to use a residential IP or a shared machine that someone else has used for sending a high volume of mail (spam) so you’re really being affected by ‘side effect’. they all run to the same IP pretty weird though, this umami is running from my VPS instance and i have never had a mail server on there
Author
Owner

@ciaranj commented on GitHub (Jul 6, 2025):

not for me they don’t, and I’d expect my resolution experience to be pretty common.

Image

As I guessed at earlier and you just confirmed you’re likely in some sort of shared hosting environment. So either you’re being NATd and there’s a bunch of other servers sharing that public IP or there was a previous server on that VPS provider who had that IP and did some spammy bulk mailing that got that IP blacklisted (this is a very common problem.)

@ciaranj commented on GitHub (Jul 6, 2025): not for me they don’t, and I’d expect my resolution experience to be pretty common. <img width="1320" height="491" alt="Image" src="https://github.com/user-attachments/assets/2e4c0578-6200-4bb8-8d46-93b2da492211" /> As I guessed at earlier and you just confirmed you’re likely in some sort of shared hosting environment. So either you’re being NATd and there’s a bunch of other servers sharing that public IP or there was a previous server on that VPS provider who had that IP and did some spammy bulk mailing that got that IP blacklisted (this is a very common problem.)
Author
Owner

@MickLesk commented on GitHub (Jul 6, 2025):

Should be done next week, we will move it to the same server as the other subdomains

@MickLesk commented on GitHub (Jul 6, 2025): Should be done next week, we will move it to the same server as the other subdomains
Author
Owner

@webmogul1 commented on GitHub (Jul 6, 2025):

Just so you know, norton shows two "threats" now.

Image Image
@webmogul1 commented on GitHub (Jul 6, 2025): Just so you know, norton shows two "threats" now. <img width="556" height="523" alt="Image" src="https://github.com/user-attachments/assets/0868a28c-b9ac-4dc6-b94a-eccecbace112" /> <img width="550" height="515" alt="Image" src="https://github.com/user-attachments/assets/357655f6-81b9-4d87-be6d-5083c8900563" />
Author
Owner

@tremor021 commented on GitHub (Jul 6, 2025):

yea, it contains "scripts" :) no shit sherlock :) norton at its best :)

@tremor021 commented on GitHub (Jul 6, 2025): yea, it contains "scripts" :) no shit sherlock :) norton at its best :)
Author
Owner

@Aerodrummer commented on GitHub (Jul 9, 2025):

Image

Virustotal.com just some minutes ago.

@Aerodrummer commented on GitHub (Jul 9, 2025): ![Image](https://github.com/user-attachments/assets/ec2b409d-2d5c-4bf5-8167-85ecc271ed22) Virustotal.com just some minutes ago.
Author
Owner

@tremor021 commented on GitHub (Jul 9, 2025):

I just want them to post somewhere how the hell they figured out its a "phishing" site. I just wanna see the technique they use to fail so hard... wtf

@tremor021 commented on GitHub (Jul 9, 2025): I just want them to post somewhere how the hell they figured out its a "phishing" site. I just wanna see the technique they use to fail so hard... wtf
Author
Owner

@mon5termatt commented on GitHub (Jul 13, 2025):

Alright, so this is according the malwarebytes staff.Screenshot_20250713_034156_Chrome.jpg

@mon5termatt commented on GitHub (Jul 13, 2025): Alright, so this is according the malwarebytes staff.![Screenshot_20250713_034156_Chrome.jpg](https://github.com/user-attachments/assets/6cbafa94-d8d7-46d4-ac9c-957a57540449)
Author
Owner

@ciaranj commented on GitHub (Jul 13, 2025):

This continues to be an issue because the domain continues to resolve to a blacklisted IP. Whilst there may be problems within the scripts, I'd be more inclined to assume the malware checkers are just flagging the far more clear-cut problem. The existence of that IP on the spamhaus blacklist, which again, is likely nothing to do with this particular server instance, but a prior or shared owner of that public IP.

You can see that it is unlikely to be the script itself by comparing the results for

https://www.virustotal.com/gui/url/12adef258c1ffc2dbfc64b64fb4bff5a3385638ba2aa6a1b1040d110c52be1aa/detection

with those for

https://www.virustotal.com/gui/url/5f1dff1b5268b51263e26723560d2d995e7c30c931557d867fe761fba5074dea

The content of both is the same, it's the hosting location that differs....

@ciaranj commented on GitHub (Jul 13, 2025): This continues to be an issue because the domain continues to resolve to a blacklisted IP. Whilst there may be problems within the scripts, I'd be more inclined to assume the malware checkers are just flagging the far more clear-cut problem. The existence of that IP on the spamhaus blacklist, which again, is likely nothing to do with this particular server instance, but a prior or shared owner of that public IP. You can see that it is unlikely to be the script itself by comparing the results for https://www.virustotal.com/gui/url/12adef258c1ffc2dbfc64b64fb4bff5a3385638ba2aa6a1b1040d110c52be1aa/detection with those for https://www.virustotal.com/gui/url/5f1dff1b5268b51263e26723560d2d995e7c30c931557d867fe761fba5074dea The content of both is the same, it's the hosting location that differs....
Author
Owner

@tremor021 commented on GitHub (Jul 13, 2025):

@mon5termatt

! function() {
  "use strict";
  (t => {
    const {
      screen: {
        width: e,
        height: a
      },
      navigator: {
        language: n,
        doNotTrack: r,
        msDoNotTrack: i
      },
      location: o,
      document: s,
      history: c,
      top: u,
      doNotTrack: d
    } = t, {
      currentScript: l,
      referrer: f
    } = s;
    if (!l) return;
    const {
      hostname: h,
      href: m,
      origin: p
    } = o, y = m.startsWith("data:") ? void 0 : t.localStorage, g = "data-", b = "true", v = l.getAttribute.bind(l), S = v(g + "website-id"), w = v(g + "host-url"), k = v(g + "before-send"), N = v(g + "tag") || void 0, T = "false" !== v(g + "auto-track"), A = v(g + "do-not-track") === b, j = v(g + "exclude-search") === b, x = v(g + "exclude-hash") === b, $ = v(g + "domains") || "", E = $.split(",").map((t => t.trim())), K = `${(w || "" || l.src.split("/").slice(0, -1).join("/")).replace(/\/$/, "")}/api/send`, L = `${e}x${a}`, O = /data-umami-event-([\w-_]+)/, _ = g + "umami-event", D = 300, U = () => ({
      website: S,
      screen: L,
      language: n,
      title: s.title,
      hostname: h,
      url: z,
      referrer: F,
      tag: N,
      id: q || void 0
    }), W = (t, e, a) => {
      a && (F = z, z = new URL(a, o.href), j && (z.search = ""), x && (z.hash = ""), z = z.toString(), z !== F && setTimeout(J, D))
    }, B = () => H || !S || y && y.getItem("umami.disabled") || $ && !E.includes(h) || A && (() => {
      const t = d || r || i;
      return 1 === t || "1" === t || "yes" === t
    })(), C = async (e, a = "event") => {
      if (B()) return;
      const n = t[k];
      if ("function" == typeof n && (e = n(a, e)), e) try {
        const t = await fetch(K, {
            method: "POST",
            body: JSON.stringify({
              type: a,
              payload: e
            }),
            headers: {
              "Content-Type": "application/json",
              ...void 0 !== R && {
                "x-umami-cache": R
              }
            },
            credentials: "omit"
          }),
          n = await t.json();
        n && (H = !!n.disabled, R = n.cache)
      }
      catch (t) {}
    }, I = () => {
      G || (G = !0, J(), (() => {
        const t = (t, e, a) => {
          const n = t[e];
          return (...e) => (a.apply(null, e), n.apply(t, e))
        };
        c.pushState = t(c, "pushState", W), c.replaceState = t(c, "replaceState", W)
      })(), (() => {
        const t = async t => {
          const e = t.getAttribute(_);
          if (e) {
            const a = {};
            return t.getAttributeNames().forEach((e => {
              const n = e.match(O);
              n && (a[n[1]] = t.getAttribute(e))
            })), J(e, a)
          }
        };
        s.addEventListener("click", (async e => {
          const a = e.target,
            n = a.closest("a,button");
          if (!n) return t(a);
          const {
            href: r,
            target: i
          } = n;
          if (n.getAttribute(_)) {
            if ("BUTTON" === n.tagName) return t(n);
            if ("A" === n.tagName && r) {
              const a = "_blank" === i || e.ctrlKey || e.shiftKey || e.metaKey || e.button && 1 === e.button;
              return a || e.preventDefault(), t(n).then((() => {
                a || (("_top" === i ? u.location : o).href = r)
              }))
            }
          }
        }), !0)
      })())
    }, J = (t, e) => C("string" == typeof t ? {
      ...U(),
      name: t,
      data: e
    } : "object" == typeof t ? {
      ...t
    } : "function" == typeof t ? t(U()) : U()), P = (t, e) => ("string" == typeof t && (q = t), R = "", C({
      ...U(),
      data: "object" == typeof t ? t : e
    }, "identify"));
    t.umami || (t.umami = {
      track: J,
      identify: P
    });
    let R, q, z = m,
      F = f.startsWith(p) ? "" : f,
      G = !1,
      H = !1;
    T && !B() && ("complete" === s.readyState ? I() : s.addEventListener("readystatechange", I, !0))
  })(window)
}();

Infected with what?

@tremor021 commented on GitHub (Jul 13, 2025): @mon5termatt ```js ! function() { "use strict"; (t => { const { screen: { width: e, height: a }, navigator: { language: n, doNotTrack: r, msDoNotTrack: i }, location: o, document: s, history: c, top: u, doNotTrack: d } = t, { currentScript: l, referrer: f } = s; if (!l) return; const { hostname: h, href: m, origin: p } = o, y = m.startsWith("data:") ? void 0 : t.localStorage, g = "data-", b = "true", v = l.getAttribute.bind(l), S = v(g + "website-id"), w = v(g + "host-url"), k = v(g + "before-send"), N = v(g + "tag") || void 0, T = "false" !== v(g + "auto-track"), A = v(g + "do-not-track") === b, j = v(g + "exclude-search") === b, x = v(g + "exclude-hash") === b, $ = v(g + "domains") || "", E = $.split(",").map((t => t.trim())), K = `${(w || "" || l.src.split("/").slice(0, -1).join("/")).replace(/\/$/, "")}/api/send`, L = `${e}x${a}`, O = /data-umami-event-([\w-_]+)/, _ = g + "umami-event", D = 300, U = () => ({ website: S, screen: L, language: n, title: s.title, hostname: h, url: z, referrer: F, tag: N, id: q || void 0 }), W = (t, e, a) => { a && (F = z, z = new URL(a, o.href), j && (z.search = ""), x && (z.hash = ""), z = z.toString(), z !== F && setTimeout(J, D)) }, B = () => H || !S || y && y.getItem("umami.disabled") || $ && !E.includes(h) || A && (() => { const t = d || r || i; return 1 === t || "1" === t || "yes" === t })(), C = async (e, a = "event") => { if (B()) return; const n = t[k]; if ("function" == typeof n && (e = n(a, e)), e) try { const t = await fetch(K, { method: "POST", body: JSON.stringify({ type: a, payload: e }), headers: { "Content-Type": "application/json", ...void 0 !== R && { "x-umami-cache": R } }, credentials: "omit" }), n = await t.json(); n && (H = !!n.disabled, R = n.cache) } catch (t) {} }, I = () => { G || (G = !0, J(), (() => { const t = (t, e, a) => { const n = t[e]; return (...e) => (a.apply(null, e), n.apply(t, e)) }; c.pushState = t(c, "pushState", W), c.replaceState = t(c, "replaceState", W) })(), (() => { const t = async t => { const e = t.getAttribute(_); if (e) { const a = {}; return t.getAttributeNames().forEach((e => { const n = e.match(O); n && (a[n[1]] = t.getAttribute(e)) })), J(e, a) } }; s.addEventListener("click", (async e => { const a = e.target, n = a.closest("a,button"); if (!n) return t(a); const { href: r, target: i } = n; if (n.getAttribute(_)) { if ("BUTTON" === n.tagName) return t(n); if ("A" === n.tagName && r) { const a = "_blank" === i || e.ctrlKey || e.shiftKey || e.metaKey || e.button && 1 === e.button; return a || e.preventDefault(), t(n).then((() => { a || (("_top" === i ? u.location : o).href = r) })) } } }), !0) })()) }, J = (t, e) => C("string" == typeof t ? { ...U(), name: t, data: e } : "object" == typeof t ? { ...t } : "function" == typeof t ? t(U()) : U()), P = (t, e) => ("string" == typeof t && (q = t), R = "", C({ ...U(), data: "object" == typeof t ? t : e }, "identify")); t.umami || (t.umami = { track: J, identify: P }); let R, q, z = m, F = f.startsWith(p) ? "" : f, G = !1, H = !1; T && !B() && ("complete" === s.readyState ? I() : s.addEventListener("readystatechange", I, !0)) })(window) }(); ``` Infected with what?
Author
Owner

@ciaranj commented on GitHub (Jul 13, 2025):

I’m not saying it is, quite the opposite, it’s being flagged because of where it’s being served from :( does anyone know if you can transfer ownership of issues so I can leave this thread and not have to say it again 😂

@ciaranj commented on GitHub (Jul 13, 2025): I’m not saying it is, quite the opposite, it’s being flagged because of where it’s being served from :( does anyone know if you can transfer ownership of issues so I can leave this thread and not have to say it again 😂
Author
Owner

@tremor021 commented on GitHub (Jul 13, 2025):

@ciaranj i'm replying to @mon5termatt because his screenshot says malwarebytes people say its a infected script. I pasted the source code of it so if anyone pinpoint what is infected.

@tremor021 commented on GitHub (Jul 13, 2025): @ciaranj i'm replying to @mon5termatt because his screenshot says malwarebytes people say its a infected script. I pasted the source code of it so if anyone pinpoint what is infected.
Author
Owner

@mon5termatt commented on GitHub (Jul 13, 2025):

I'm just forwarding what I saw them reply to me with. So I genuinely have no idea. I think that their assessment is wrong, but they're the staff and so I can't mess with them.

@mon5termatt commented on GitHub (Jul 13, 2025): I'm just forwarding what I saw them reply to me with. So I genuinely have no idea. I think that their assessment is wrong, but they're the staff and so I can't mess with them.
Author
Owner
@mon5termatt commented on GitHub (Jul 13, 2025): https://forums.malwarebytes.com/topic/327667-community-scriptsorg/#comment-1707619
Author
Owner

@MickLesk commented on GitHub (Jul 15, 2025):

https://forums.malwarebytes.com/topic/327667-community-scriptsorg/#comment-1707647

Classic. Support prefers to delete the request and refers to any rules but gives no feedback about the standard script which is incorrectly recognized by them. Very professional guys 😄

I have now removed the IP forwarding for Umami, which means that we no longer have any website data, but it should not block anything until we have moved the server

@MickLesk commented on GitHub (Jul 15, 2025): https://forums.malwarebytes.com/topic/327667-community-scriptsorg/#comment-1707647 Classic. Support prefers to delete the request and refers to any rules but gives no feedback about the standard script which is incorrectly recognized by them. Very professional guys 😄 I have now removed the IP forwarding for Umami, which means that we no longer have any website data, but it should not block anything until we have moved the server
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: starred/ProxmoxVE#1216