kgretzky/evilginx2 · error

this phishlet is incompatible with current version of evilgi

Error message

this phishlet is incompatible with current version of evilginx.
please do the following modifications to update it:

- replace `landing_path` with `login` section
- change `min_ver` to at least `2.3.0`
you can find the phishlet 2.3.0 file format documentation here: https://github.com/kgretzky/evilginx2/wiki/Phishlet-File-Format-(2.3.0)

What it means

After the 2.2.0 check, the phishlet loader enforces a second minimum: phishlets must declare min_ver >= 2.3.0, which introduced the `login` section replacing `landing_path`. The message is a migration checklist for upgrading a 2.2.0-era phishlet to the 2.3.0 format.

Source

Thrown at core/phishlet.go:306

	p.Version, err = p.parseVersion(c.GetString("min_ver"))
	if err != nil {
		return err
	}
	if !p.isVersionHigherEqual(&p.Version, "2.2.0") {
		return fmt.Errorf("this phishlet is incompatible with current version of evilginx.\nplease do the following modifications to update it:\n\n" +
			"- in each `sub_filters` item change `hostname` to `triggers_on`\n" +
			"- in each `sub_filters` item change `sub` to `orig_sub`\n" +
			"- rename section `user_regex` to `username`\n" +
			"- rename section `pass_regex` to `password`\n" +
			"- rename field `re` in both `username` and `password` to `search`\n" +
			"- field `key` in both `username` and `password` must be a regexp by default\n" +
			"- move `username` and `password` into new `credentials` section\n" +
			"- add `type` field to `username` and `password` with value 'post' or 'json'\n" +
			"- change `min_ver` to at least `2.2.0`\n" +
			"you can find the phishlet 2.2.0 file format documentation here: https://github.com/kgretzky/evilginx2/wiki/Phishlet-File-Format-(2.2.0)")
	}
	if !p.isVersionHigherEqual(&p.Version, "2.3.0") {
		return fmt.Errorf("this phishlet is incompatible with current version of evilginx.\nplease do the following modifications to update it:\n\n" +
			"- replace `landing_path` with `login` section\n" +
			"- change `min_ver` to at least `2.3.0`\n" +
			"you can find the phishlet 2.3.0 file format documentation here: https://github.com/kgretzky/evilginx2/wiki/Phishlet-File-Format-(2.3.0)")
	}

	fp := ConfigPhishlet{}
	err = c.Unmarshal(&fp)
	if err != nil {
		return err
	}

	if fp.Params != nil {
		if len(*fp.Params) > 0 {
			p.isTemplate = true
		}
		if customParams != nil {
			prequired := make(map[string]string)
			pall := make(map[string]string)

View on GitHub (pinned to 4c0988a1d9)

Solutions

  1. Replace the `landing_path` field with a `login` section per the 2.3.0 format (login: { domain, path })
  2. Set `min_ver` to at least 2.3.0
  3. Fetch an updated 2.3.0+ phishlet from the author if available
  4. Consult the official docs: https://github.com/kgretzky/evilginx2/wiki/Phishlet-File-Format-(2.3.0)

Example fix

# before
min_ver: 2.2.0
landing_path: /login
# after
min_ver: 2.3.0
login:
  domain: 'example.com'
  path: '/login'
Defensive patterns

Strategy: validation

Validate before calling

if v, _ := parseVersion(minVer); !isVersionHigherEqual(v, "2.3.0") {
    return fmt.Errorf("phishlet must declare min_ver >= 2.3.0 (login section required)")
}

Type guard

func isPhishlet23Compatible(minVer string) bool {
    v, err := parseVersion(minVer)
    return err == nil && isVersionHigherEqual(&v, "2.3.0")
}

Try / catch

if err := cfg.LoadPhishlet(name, path, nil); err != nil {
    if strings.Contains(err.Error(), "landing_path") {
        log.Error("convert landing_path to the login section and set min_ver: 2.3.0")
    }
}

Prevention

When it happens

Trigger: Loading a phishlet whose `min_ver` is exactly 2.2.x (or otherwise below 2.3.0) and which still uses `landing_path` instead of the `login` section — e.g. `min_ver: 2.2.0` with `landing_path: /login`.

Common situations: Phishlets downloaded from repositories frozen at the 2.2.0 format, hand-migrated phishlets that got min_ver to 2.2.0 but not 2.3.0, or older evilginx tutorials' example phishlets.

Related errors


AI-assisted analysis of kgretzky/evilginx2@4c0988a1d9 (2026-09-05). Data as JSON: /api/errors/5cbe633391aca33a. Report an issue: GitHub.