Skip to content

Commit 30fe5e5

Browse files
committed
Release 0.1.0
1 parent b7d4817 commit 30fe5e5

File tree

14 files changed

+37
-116
lines changed

14 files changed

+37
-116
lines changed

Makefile

+2
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,2 @@
1+
build-wasm:
2+
GOOS=js GOARCH=wasm go build -ldflags "-X github.com/verdexlab/verdex/verdex/core.releaseEnvironment=release-wasmjs" -o ./dist/verdex.wasm .

README.md

+6-6
Original file line numberDiff line numberDiff line change
@@ -7,18 +7,18 @@ Verdex also **determines the accurate vulnerabilities** associated with the dete
77

88
🔧 Instead of relying on exposed headers, Verdex quickly analyzes the features present on a service.
99
For example, **if a feature was introduced in a specific version, Verdex uses this information to deduce the
10-
minimum version of the service** (see [How It Works](https://verdex-docs.mintlify.app/how-it-works) for more information).
10+
minimum version of the service** (see [How It Works](https://docs.verdexlab.io/how-it-works) for more information).
1111

1212
🪶 Verdex relies solely on **non-aggressive methods**, in particular by using mostly static assets (javascript, css and html files).
1313

14-
🎯 Currently, Verdex supports detecting versions of **Keycloak** and **NextCloud** (see [Products](https://verdex-docs.mintlify.app/essentials/products) documentation).
14+
🎯 Currently, Verdex supports detecting versions of **Keycloak** and **NextCloud** (see [Products](https://docs.verdexlab.io/essentials/products) documentation).
1515

16-
🌪️ Verdex has a Standard mode and an Expert mode with more advanced features, such as [vulnerabilities listing](https://verdex-docs.mintlify.app/expert/vulnerabilities).
16+
🌪️ Verdex has a Standard mode and an Expert mode with more advanced features, such as [vulnerabilities listing](https://docs.verdexlab.io/expert/vulnerabilities).
1717

1818
⚠️ Any unauthorized use of Verdex to analyze or exploit online services is strictly prohibited and violates both our license agreement and applicable laws. **Verdex must be used with explicit authorization from the owner or administrator of the targets being scanned**.
1919

2020
## 📖 Documentation
21-
The entire tool documentation is available at [https://verdex-docs.mintlify.app](https://verdex-docs.mintlify.app)
21+
The entire tool documentation is available at [https://docs.verdexlab.io](https://docs.verdexlab.io)
2222

2323
## 🚀 Install Verdex
2424

@@ -34,7 +34,7 @@ source ~/.bashrc
3434
```
3535

3636
> 📖 Read documentation for more installation options:
37-
[https://verdex-docs.mintlify.app/quickstart](https://verdex-docs.mintlify.app/quickstart)
37+
[https://docs.verdexlab.io/quickstart](https://docs.verdexlab.io/quickstart)
3838

3939
## 🌪️ Run version detection
4040

@@ -43,7 +43,7 @@ verdex -target https://keycloak.example.com -output-json ./results.json
4343
```
4444

4545
> 📖 Read documentation for more detection options:
46-
[https://verdex-docs.mintlify.app/essentials/options](https://verdex-docs.mintlify.app/essentials/options)
46+
[https://docs.verdexlab.io/essentials/options](https://docs.verdexlab.io/essentials/options)
4747

4848
## License
4949
Verdex is distributed under MIT License.

docs/essentials/options.mdx

-16
Original file line numberDiff line numberDiff line change
@@ -56,22 +56,6 @@ verdex -target https://example.com -verbose
5656
```
5757
</ParamField>
5858

59-
## Improvement Reports
60-
61-
Sometimes, Verdex cannot determine version for multiple reasons (missing or incorrect rules, specific configuration, ...).
62-
Use `-report-errors` to automatically report failures to Verdex maintainers for manual debugging.
63-
By default, targets are not reported.
64-
65-
<Note>
66-
URLs of reported targets will NOT be publicly visible and will be accessed by Verdex maintainers for debugging purposes only.
67-
</Note>
68-
69-
<ParamField path="-report-errors" type="boolean" default={false}>
70-
```bash
71-
verdex -target https://example.com -report-errors
72-
```
73-
</ParamField>
74-
7559
## Custom templates
7660

7761
Verdex uses templates to run scans (see [Contribute section](/contribute) for more information).

docs/essentials/products.mdx

+1-1
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@ import ProductsVotes from '/snippets/products-votes.mdx';
1515
**Keycloak** is an open-source identity and access management solution maintained by RedHat.
1616

1717
**Detected versions:**
18-
`12.0.0` (dec. 2020) --> `26.0.7` (dec. 2024)
18+
`12.0.0` (dec. 2020) --> `26.0.8` (jan. 2025)
1919

2020
**Vulnerabilities & update recommendations:**
2121
<Icon icon="check" iconType="duotone" /> Yes

main.go

-19
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,6 @@
11
package main
22

33
import (
4-
"slices"
54
"time"
65

76
"github.com/rs/zerolog/log"
@@ -68,24 +67,6 @@ func main() {
6867

6968
ui.RenderDetectionResults(detection, err)
7069

71-
if !detection.Success && detection.Product != "" {
72-
cache := core.GetCache(&execution.Config)
73-
if slices.Contains(cache.ReportedTargets, detection.Target) {
74-
log.Debug().Msg("Target already reported")
75-
} else if execution.Config.ReportTargets {
76-
err = core.ReportTarget(detection)
77-
if err != nil {
78-
log.Error().Err(err).Msg("Failed to report target")
79-
} else {
80-
cache.ReportedTargets = append(cache.ReportedTargets, detection.Target)
81-
cache.Save()
82-
log.Info().Msg("Target reported, thank you for improving Verdex")
83-
}
84-
} else {
85-
log.Info().Msg("Feel free to report it (using -report-errors), we'll investigate to improve detection (target will NOT be publicly visible)")
86-
}
87-
}
88-
8970
if detection.Success {
9071
versionsStr := make([]string, 0)
9172
for _, version := range versions {

package-lock.json

-6
This file was deleted.

templates/keycloak/rules/26.0.8.yml

+20
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
info:
2+
product: keycloak
3+
author: pierreavn
4+
5+
version: '>= 26.0.8'
6+
7+
http:
8+
# js/apps/admin-ui/maven-resources/theme/keycloak.v2/admin/messages/messages_en.properties
9+
- method: GET
10+
path: '/resources/master/admin/en'
11+
12+
matchers-condition: and
13+
matchers:
14+
# https://github.com/keycloak/keycloak/compare/26.0.7...26.0.8#diff-c9ef637a710ad2a1ec0f86584796ce5fff7fa0c7a8702bcd020b29eef4e5af43
15+
- type: word
16+
part: body
17+
word: '{"key":"policyRolesHelp","value":"Click on'
18+
19+
- type: status
20+
status: 200

verdex/api/api.go

+1-1
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ package api
33
import "github.com/verdexlab/verdex/verdex/core"
44

55
// Origin of Verdex API
6-
var apiBaseUrl = "https://api.verdexlab.workers.dev"
6+
var apiBaseUrl = "https://api.verdexlab.io"
77

88
// User-Agent used to call API
99
var apiUserAgent = "verdex-cli-" + core.GetVerdexVersion()

verdex/assets/proxy_js.go

+1-1
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,7 @@ import (
77
"net/http"
88
)
99

10-
var proxyHost = "proxy.verdexlab.workers.dev"
10+
var proxyHost = "proxy.verdexlab.io"
1111

1212
// Proxy for wasm:js targets
1313
func proxifyRequest(request *http.Request) {

verdex/core/cache.go

+4-6
Original file line numberDiff line numberDiff line change
@@ -11,10 +11,9 @@ import (
1111
var cacheFileName = ".cache"
1212

1313
type Cache struct {
14-
Config *Config `yaml:"-"`
15-
Releases CacheReleases `yaml:"releases"`
16-
ReportedTargets []string `yaml:"reported-targets"`
17-
Products map[string]*CacheProduct `yaml:"products"`
14+
Config *Config `yaml:"-"`
15+
Releases CacheReleases `yaml:"releases"`
16+
Products map[string]*CacheProduct `yaml:"products"`
1817
}
1918

2019
type CacheReleases struct {
@@ -101,8 +100,7 @@ func newCache(config *Config) {
101100
Cli: CacheReleasesCli{},
102101
Templates: CacheReleasesTemplates{},
103102
},
104-
ReportedTargets: []string{},
105-
Products: map[string]*CacheProduct{},
103+
Products: map[string]*CacheProduct{},
106104
}
107105

108106
cache = &newCache

verdex/core/cli.go

-1
Original file line numberDiff line numberDiff line change
@@ -40,7 +40,6 @@ func ParseFlags() *Execution {
4040
flag.BoolVar(&showVersion, "version", false, "show verdex version")
4141
flag.StringVar(&execution.Config.TemplatesDirectory, "templates-directory", "", "path to templates directory to use instead of official repository")
4242
flag.BoolVar(&execution.Config.Verbose, "verbose", false, "show verbose output")
43-
flag.BoolVar(&execution.Config.ReportTargets, "report-errors", false, "report failed target to improve detections")
4443

4544
// Testing
4645
if GetEnvironment() == EnvironmentDevelopment {

verdex/core/config.go

+1-2
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,6 @@ type Config struct {
1515
TemplatesFS fs.FS
1616
TemplatesRelease string
1717
Verbose bool
18-
ReportTargets bool
1918
Test bool
2019
TestVersion string
2120
TestSession bool
@@ -31,7 +30,7 @@ const (
3130
var userHomeDir, _ = os.UserHomeDir()
3231

3332
// CLI version
34-
var cliVersion = "0.0.1"
33+
var cliVersion = "0.1.0"
3534

3635
// Templates
3736
var TemplatesDefaultDirectory = path.Join(userHomeDir, "verdex-templates")

verdex/core/report.go

-56
This file was deleted.

verdex/ui/detection_cves.go

+1-1
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@ func RenderDetectionCVEs(execution *core.Execution, data *api.CVEsData, isApiKey
2121

2222
log.Info().Msgf(color.New(color.BgRed, color.FgWhite).Sprint(" ✗ ")+" Target is %s, %s on detected version", color.New(color.Bold, color.FgRed).Sprint("vulnerable"), color.New(color.Bold).Sprintf("%d CVE found", data.Total))
2323
if !isApiKeyValid {
24-
log.Info().Msg("Use valid API key (-key) to list vulnerabilities and get update recommendations, see https://verdex-docs.mintlify.app/expert/vulnerabilities")
24+
log.Info().Msg("Use valid API key (-key) to list vulnerabilities and get update recommendations, see https://docs.verdexlab.io/expert/vulnerabilities")
2525
return
2626
}
2727

0 commit comments

Comments
 (0)